存储Javascript PageMethods "返回值"变成一个变量

本文关键字:quot 变量 一个 Javascript PageMethods 返回值 存储 | 更新日期: 2023-09-27 18:11:34

我有一个示例代码如下:

PageMethods.getServerTime(DateTimeFormat, OnRequestComplete, OnError);

它使用Javascript PageMethods来调用c#函数getServerTime。然而,我注意到,如果我使用下面的代码,我将能够查看"返回值"。

    function OnRequestComplete(result) {
        alert(result);
    }

但是,如果我尝试使用以下代码:

var result = "";
result = PageMethods.getServerTime(DateTimeFormat, OnRequestComplete, OnError);

我将永远一事无成。

从我的理解和通过互联网的研究来看,结果似乎如下:

Because the ajax call is async. It does not wait for the ajax call to complete.
因此,这是否意味着在整个世界中没有能够将"结果值"存储到Javascript变量的工作?

我只能放置alert()或使用<div>来显示结果。没有机会将其存储到Javascript变量以供以后使用吗?

存储Javascript PageMethods "返回值"变成一个变量

你说得对。因为调用是异步的,所以在调用getServerTime时没有值分配给"result"。但是你已经通过使用OnRequestComplete击中了要害,因为那是你可以确定它已经被设置的地方。如果你需要对这个值做一些事情,比如把它显示给用户,那么你必须在这个方法中完成,或者从内部调用另一个方法。

var result = "";
function OnRequestComplete(res) {
    result = res;
    DoSomethingWithResult();
}
function DoSomethingWithResult(){
    // Do your stuff here
}