存储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变量以供以后使用吗?
你说得对。因为调用是异步的,所以在调用getServerTime时没有值分配给"result"。但是你已经通过使用OnRequestComplete击中了要害,因为那是你可以确定它已经被设置的地方。如果你需要对这个值做一些事情,比如把它显示给用户,那么你必须在这个方法中完成,或者从内部调用另一个方法。
var result = "";
function OnRequestComplete(res) {
result = res;
DoSomethingWithResult();
}
function DoSomethingWithResult(){
// Do your stuff here
}