promise的佇列,巨集任務,微任務,同步任務

2022-06-12 23:57:08 字數 948 閱讀 9634

//

promise裡面有乙個特別的任務,就是微任務

//同步任務》微任務》巨集任務

settimeout(() =>,

0); //

代表的是巨集任務

new promise(resove=>,reject=>).then(()=>)

console.log(

"hello");

這裡面輸出的結果是:

同步任務

}).then(() =>)

console.log(

"hello

"); //

同步任務

/*不管什麼任務,一旦放入了主線程中執行,必須等主線程裡的任務執行完,才可以執行下乙個放入主線程的任務

所以 **執行時,一開始先到定時器,定時器是非同步的並且是巨集任務,先放入記憶體中,不執行。

再往下走,經過了第乙個同步任務promise,放入主線程中執行,再走,發現then,不執行,

繼續往下,第二個同步任務(hello)執行,

現在同步走完,開始執行非同步的任務,進到定時器裡,說明這裡將定時器放入主線程了,不管console.log("settimeout"); 放在resove()的上面還是下面,都會先輸出settimeout,因為要先將定時器先處理完,

所以最後再輸出 '成功了' .

所以這個例子也告訴我們,同步任務》微任務》巨集任務 並不是絕對的

Promise 微任務 巨集任務和同步

js的執行步驟是 先執行同步,在執行微任務,最後執行巨集任務。一下 let promise new promise resolve 0 console.log promise then value console.log then console.log 外面的console 當js順序執行的時候遇...

巨集任務和微任務

概念 1.巨集任務 當前呼叫棧中執行的 成為巨集任務。主 快,定時器等等 3.巨集任務中的事件放在callback queue中,由事件觸發執行緒維護 微任務的事件放在微任務佇列中,由js引擎執行緒維護。執行機制02 1.在執行棧中執行乙個巨集任務。2.執行過程中遇到微任務,將微任務新增到微任務佇列...

巨集任務與微任務

之前我們討論過js 執行的同步和非同步,js的單執行緒執行機制不會改變 但是僅僅懂得同步非同步是遠遠不夠的 比如說下面這些 1 settimeout function 4new promise function resolve,reject then function 10 console.log ...