亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

js變量作用域求解

js變量作用域求解

守候你守候我 2019-04-16 10:39:22
為何我打印出uname是undefined如果這么寫var uname="匿名用戶";$.get(xxx,function(res){uname = "1111";});console.log(uname);uname依然是"匿名用戶",請問這是何解……如果我想把uname定義成全局的,通過get的返回值給它賦值應該怎么寫,謝謝
查看完整描述

2 回答

?
慕尼黑8549860

TA貢獻1818條經驗 獲得超11個贊

跟作用域無關

get默認是異步請求,即請求發送不影響后續代碼的執行

get方法要使用網絡協議傳送數據,即使速度再快也沒有執行一條js代碼的速度快

所以在結果回來前console.log就已經執行了,uname是最初的值,當console.log執行后的N久時間,uname才被改(一個請求至少要幾個毫秒),這個時間基本上幾千行代碼都能異步的執行完

解決方法是將請求改為同步請求,請求時會阻塞其他語句的執行,直到返回結果

你可以在get語句前設置全局ajax同步請求

1

2

3

$.ajaxSetup({  

    async : false  

});

 


查看完整回答
反對 回復 2019-04-16
  • 2 回答
  • 0 關注
  • 532 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號