js非同步變同步小技巧 遞迴

2021-08-01 11:38:16 字數 424 閱讀 1107

在寫js的時候,很多時候都會遇到非同步轉同步的問題。

比如:從伺服器端返回乙個集合資料,在遍歷集合的時候,又要非同步去請求別的資料,但是for迴圈必須在同步的情況下執行。這時候,怎麼辦?

解決這種問題的辦法可能會有很多。但是,現在介紹乙個最簡單,也最容易理解的方法,那就是遞迴。

例如:從服務端返回乙個陣列:params

for(var i =0 ; i < params.length; i++)

//上面的**是不對的。同步中巢狀著非同步,得到的結果是不穩定的。

//可以這麼寫:

(function

iterator

(i) //非同步請求,

$('***',{},function

(data));

})(0);

for迴圈中的非同步處理(非同步變同步)

前沿 參考es6語法的async await的處理機制 先上一段 function getmoney compute.exec 這是個非同步方法,在裡面處理一些實際業務 這時候列印出來的很可能就是300,300,300 因為非同步for迴圈還沒有等非同步操作返回promise物件過來i值已經改變 a...

小程式同步非同步

asyncfunc1 function 上面的 應該是你想要的執行順序吧,但是感覺太難看了,所以我想了乙個笨辦法,什麼話都沒有上 getuserinfo function cb else data success function res else fail function res else 這是...

JS的同步與非同步

我們都知道js的 是同步執行的,也就是按照我們所書寫的順序一一執行,但是有3個特殊,他們屬於非同步執行 計時器 setinterval,settimeout 事件 onclick,onkeydown等 ajax 接下來我們分析比較一下同步執行的 和非同步執行的 之間的一些執行邏輯 1239 1011...