官方宣布Promise新出了個方法,對你有用嗎?
大家好,我是林三心,用最通俗易懂的話講最難的知識點是我的座右銘,基礎是進階的前提是我的初心~
背景
有時候我們需要把 Promise 的 resolve 或者 reject 這兩個參數(shù)給取出來,去實現(xiàn)某種目的
就比如下面例子,我想手動控制 Promise 的 fullfiled 的時機,所以需要把 resolve 給取出來,然后在我覺得適當?shù)臅r機去執(zhí)行這個 resolve,這樣 Promise 就變 fullfiled 了
圖片
但是這樣挺麻煩的,我總是得定義一個額外的變量去存儲這個 resolve
Promise.withResolvers
Promise 最近有一個新的方法進入 stage3 了,這個方法就是 Promise.withResolvers
他的作用是把 Promise實例、resolve、reject 解構(gòu)出來供我們使用,還是剛剛的例子,使用 Promise.withResolvers
圖片
Stage3 階段
這個方法,目前處于Stage-3階段,需要谷歌 117 以上的版本才能使用這個方法,Stage-3就是候選的意思,這些方法的提案分為幾個階段
- Stage 0 - Strawman (草案階段): 這是提案的初始階段,通常是一些初步的想法或建議。這些提案還沒有得到正式的討論和接受。
- Stage 1 - Proposal (提案階段): 在這個階段,提案已經(jīng)經(jīng)過了初步的討論,并且有了詳細的說明。它們通常由一個或多個TC39委員會成員提交,并等待進一步的審查和反饋。
- Stage 2 - Draft (草案階段): 在這個階段,提案已經(jīng)經(jīng)過了初步的審查,包括語法和語義方面的考慮。提案可能會在這個階段進行一些修改和改進。
- Stage 3 - Candidate (候選階段): 當提案達到這個階段時,它們被認為是成熟的,可以被實施到JavaScript引擎中。這通常包括詳細的規(guī)范文檔和實際的參考實現(xiàn)。
- Stage 4 - Finished (完成階段): 這是提案的最終階段,表示它們已經(jīng)被正式接受為ECMAScript標準的一部分,可以在各種JavaScript環(huán)境中廣泛使用。
期待不久的將來,這個方法能到Stage 4階段,并在項目中廣泛使用?。。?!牛bi?。。。?!