關於ajax同步異步處理循環遍歷及push時發生的疑問


今天寫了一個簡單的ajax請求,其中因為一些需求 渲染過程沒有寫在回調函數內,要在外部訪問遍歷后的數組進行渲染,第一次寫時圖片如下圖

此時console.log(arr)打印出來的內容是一個長度為0,包含十條完整數據的數組,如下圖

此時,當我訪問arr[0]或者arr[1]時,均會出現undefined提示,

開始的時候我一直認為是數組操作的問題,在這個方向上努力了半天,發現方向可能是錯的,最后覺得可能是因為ajax默認的異步請求,所以將請求改成了同步,如下圖

此時打印的內容變成了想要的需求,如下圖

這樣的話,我實際上的需求已經達成了,等我活忙完了回過頭來反思,發現不能理解其中到底發生了什么,如果是因為異步請求,導致循環和push沒完成就打印了arr,那么arr內應該是一個擁有不完整數據的數組,但打印出來的內容卻是一個擁有完整的10條數據且長度為0的數組,也就是說,異步請求時循環遍歷以及push的過程已經結束了,不然不可能有完整的10條數據,但為什么打印出來的arr卻是一個沒有長度數據完整的數組呢?

希望路過的大神能給解答一下,感激不盡


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM