[英]Store Javascript PageMethods “return value” into a variable
我有一個示例代碼如下:
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時沒有值可分配給“結果”。 但是您已經使用OnRequestComplete擊中了釘子,因為可以確定它已被設置。 如果隨后需要對值進行某些操作(例如將其顯示給用戶),則必須在此方法中執行此操作,或者通過從內部調用另一個方法來執行此操作。
var result = "";
function OnRequestComplete(res) {
result = res;
DoSomethingWithResult();
}
function DoSomethingWithResult(){
// Do your stuff here
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.