setTimeout(() => { console.log(1) Promise.resolve(3).then(data => console.log(data));}, 0)setTimeout(() => { console.log(2)}, 0)我們知道setTimeout的的回調在timer階段執行,然后2個setTimeout 都會被注冊到timer階段eventloop 檢查timer時候,有2個setTimeout 然后執行,并且第一個setTimeout中的 promise.resolve() 在注冊到microTask中,在timer 階段結束 執行microTask.但是這個代碼執行會出現 1 2 3 和 1 3 2 的結果所以有點不理解為什么會有這兩種不同的結果。
node eventloop 問題
慕少森
2019-03-05 16:19:58