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