簡體   English   中英

使用ajax回調函數的奇怪行為

[英]Strange behaviour with an ajax callback function

當嘗試從ajax回調函數設置變量時,我得到了不可預測的結果:

var logged_in=false;

function check_response(response,el) {
logged_in=true; 
alert(logged_in); //outputs TRUE
}

makePOSTRequest("/is_logged.php", check_response); //when ready call check_response() with the XML response
alert(logged_in); //first time outputs FALSE;
alert(logged_in); //second time outputs TRUE;
  1. 我運行POSTRequest來檢查我的用戶是否已登錄。
  2. POSTRequest回調函數check_response()來解析響應並將變量logging_in設置為TRUE。
  3. 接下來,當我嘗試使用變量logging_in時,它是:1st time FALSE; 然后是TRUE ...

您知道為什么會發生這種奇怪的行為嗎?

因為“ makePOSTRequest”是異步的,所以該方法之后的第一個“警報”顯示為“ false”,因為這是之前設置的變量的默認值,並且在您調用alert時,實際上是在“阻止”第二個警報的執行到那時,請求完成,並且“ logged_in”設置為true。

當傳遞0或1代替true或false時,問題是否相同?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM