for (var i = 0; i < 5; i++)
//0
//1
//2//3
//4//加入延時
for (var i = 0; i < 5; i++) , 1000 * i);
} //5 //立即執行
//5 //一秒後
//5 //一秒後
//5 //一秒後
//5 //一秒後
var output = function (i) , 1000 * i);
}for (var i = 0; i < 5; i++)
//0 //立即執行
//1 //一秒後
//2 //一秒後
//3 //一秒後
//4 //一秒後
for (let i = 0; i < 5; i++) , 1000 * i);
}//0 //立即執行
//1 //一秒後
//2 //一秒後
//3 //一秒後
//4 //一秒後
for (var i = 0; i < 5; i++) , i * 1000);
})(i); }
//0 //立即執行
//1 //一秒後
//2 //一秒後
//3 //一秒後
//4 //一秒後
for (let i = 0; i < 5; i++) , 1000 * i, i);
}//0 //立即執行
//1 //一秒後
//2 //一秒後
//3 //一秒後
//4 //一秒後
for (var i = 0; i < 5; i++) , i * 1000);
})(i);
} //5 //立即執行
//5 //一秒後
//5 //一秒後
//5 //一秒後
//5 //一秒後
for (var i = 0; i < 5; i++) )(i), i * 1000);
} //0
//1
//2//3
//4
settimeout(function() , 0);
new promise(function executor(resolve)
console.log(3);
}).then(function() );
console.log(5);
裡面的**屬於 microtask, 會在當前 event loop 的最後執行,
//而 settimeout 內的**屬於 macrotask, 會在下乙個 event loop 中執行
//2//3
//5//4
//1
async function xx() , 1000)})}
console.log('continue')
console.timeend();//default: 5006.636ms
}xx();
//0 //一秒後
//1 //一秒後
//2 //一秒後
//3 //一秒後
//4 //一秒後
//continue //async結束後才立即顯示
//koa2 的 delay
async function delay(time) , time);
});}; await delay(2000);
for迴圈中的非同步處理(非同步變同步)
前沿 參考es6語法的async await的處理機制 先上一段 function getmoney compute.exec 這是個非同步方法,在裡面處理一些實際業務 這時候列印出來的很可能就是300,300,300 因為非同步for迴圈還沒有等非同步操作返回promise物件過來i值已經改變 a...
js迴圈中呼叫ajax
var i for i 0 i 10 i 在for迴圈中呼叫ajax方法 補充頁面上的資料,這樣寫是錯誤的,他不會每執行一次for迴圈就執行一次ajax方法,而是等for迴圈結束才去執行ajax方法,所以導致ajax只被執行一次。然而當修改如下 for i 0 i 10 i 與上面不同的是在每次呼叫...
迴圈中呼叫非同步介面獲取資料
整體思路就是 先存陣列,然後迴圈生成每乙個promise,然後用promise.all來呼叫,then的時候返回的是乙個結果陣列。1 首先定義迴圈裡的非同步請求 getinfo item index then res 2 newslist為開始介面獲取的新聞列表,對新聞列表進行迴圈,得到乙個prom...