JavaScript Promise | Promise
取得global(node.js)這個步驟是為了在node.js中能夠取得global物件,再從global中取得micro-task的函式,例如process.nextTick。再考慮到瀏覽器中沒有process.nextTick、setImmediate可以使用,如果想要使用非同步執行的API,只能考慮postMessage、MutationObserver或setTimeout。在這篇文章中的實作會使用process.nextTick或setTimeout。因為開發環境是codesandboxs,原本就是是node.js的執行環境,所以可以使用process.nextTick。定義Promise狀態與SymbolPromise的狀態總共有三種,分別是Pending、Fulfilled、Rejected,所以定義三...
取得 global (node.js)這個步驟是為了在 node.js 中能夠取得 global 物件,再從 global 中取得 micro-task 的函式,例如 process.nextTick。
再考慮到瀏覽器中沒有 process.nextTick、 setImmediate 可以使用,如果想要使用非同步執行的 API,只能考慮 postMessage 、 MutationObserver 或setTimeout 。
在這篇文章中的實作會使用 process.nextTick 或 setTimeout。
因為開發環境是 codesandboxs,原本就是是 node.js 的執行環境,所以可以使用 process.nextTick 。
定義 Promise 狀態與 SymbolPromise 的狀態總共有三種,分別是 Pending、Fulfilled、Rejected,所以定義三個變數將狀態以字串的形式儲存,再後面我們會用來判斷 Promise 目前的狀態。