我有以下代碼:承諾爲基礎的功能迴路不運行異步
function asyncLoop() {
return new Promise(function(res, rej) {
for(let i=0;i<=400000000;i++) {
if(i===400000000) {console.log("done"); res();}
}
});
}
asyncLoop().then(()=>{console.log("then")});
console.log("out");
我得到以下輸出:
done
out
then
據我承諾的理解,asyncLoop應該異步運行及以下應該是輸出:
out
done
then
什麼我錯過了嗎?
https://stackoverflow.com/a/5436869/1278540然後VS做 –
@DebajyotiDas這是關於jQuery的承諾 - 這使用本機。 – Jamiec
Promise沒有「魔術」屬性來創建一些尚未異步的異步事件。它們只是一個標準化的通知和錯誤處理方案 - 僅此而已。如果底層操作不是異步的,那麼將其包裝在承諾中不會以某種方式使其變爲異步。 – jfriend00