亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

javascript - 關(guān)於ajax非同步載入請問資料延遲問題
阿神
阿神 2017-06-30 09:53:44
0
6
780

在外面定義一個空數(shù)組,然後做一個ajax請求,請求內(nèi)再嵌套一個請求,最後拼接成一個三個物件插入空數(shù)組。
然後我在最外面印出陣列長度,印出來的長度是0,這個問題會影響賦值。請問怎麼解決。

#
阿神
阿神

閉關(guān)修行中......

全部回覆(6)
為情所困

ajax異步會造成這樣的問題。解1.Promise 2.在ajax回呼中進行賦值

ringa_lee

ajax 是異步的,當執(zhí)行到你的 log 程式碼時,ajax 還沒有回傳。

學(xué)霸

請查閱事件循環(huán)的問題

我們知道ajax是非同步操作,

你console.log 的位置 此時arr.length 其實就是[].length

當你目前的js執(zhí)行完後,ajax的success回調(diào)才會執(zhí)行,只有success回調(diào)成功後此時你的arr數(shù)組被push進值

所以你可能要把console.log放入第二個ajax的success回調(diào)裡
至於promise會很好的優(yōu)化這種嵌套的回調(diào),但是你要封裝你的ajax

建議把你所有的ajax 包裝成promise

為情所困

ajax是資料取得方式是異步的,所以非同步取得的資料並不能按照平常理解的同步方式去處理,應(yīng)該把你的console.log 寫在 success 的 回呼函數(shù)裡。

過去多啦不再A夢

將你的async:false,這樣你就可以在外面獲取到裡面的值了。

巴扎黑

這樣的話,你得改成ajax同步。非同步的話,ajax和它後面的程式碼同時執(zhí)行

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板