引言

  microtask 這一名詞是 JS 中比較新的概念,幾乎所有人都是在學(xué)習(xí) ES6 的 Promise 時(shí)才接觸這一新概念,我也不例外。當(dāng)我剛開始學(xué)習(xí) Promise 的時(shí)候,對其中回調(diào)函數(shù)的執(zhí)行方式特別著迷,于是乎便看到了 microtask 這一個單詞,但是困難的是國內(nèi)很少有關(guān)于這方面的文章,有一小部分人探討過不過對其中的原理和機(jī)制的講解也是十分晦澀難懂。直到我看到了 Jake Archibald 的文章,我才對 microtask 有了一個完整的認(rèn)識,所以我便想把這篇文章翻譯過來,供大家學(xué)習(xí)和參考。

  本篇文章絕大部分翻譯自 Jake Archibald 的文章 Tasks, microtasks, queues and schedules。有英文功底的同學(xué)建議閱讀原著,畢竟人家比我寫的好...

  適合人群:有一定的 JavaScript 開發(fā)基礎(chǔ),對 JavaScript Event Loop 有基本的認(rèn)識,掌握 ES6 Promise 。

初識 Microtask

  讓我們先來看一段代碼,猜猜它將會以何種順序輸出:

大數(shù)據(jù)培訓(xùn),云培訓(xùn),數(shù)據(jù)挖掘培訓(xùn),云計(jì)算培訓(xùn),高端軟件開發(fā)培訓(xùn),項(xiàng)目經(jīng)理培訓(xùn)

 1 console.log('script start');&