?'a'),??fetch(..." />
<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          V8 8.5 帶來的三個(gè)實(shí)用新特性!

          共 1484字,需瀏覽 3分鐘

           ·

          2020-09-15 18:26


          Promise.any

          Promise 新增了一個(gè) any 方法,它接收一個(gè) Promise 數(shù)組,當(dāng)數(shù)組中某一個(gè) Promisefulfilled 后,它返回的 Promise 就會(huì)被返回。

          const?promises?=?[
          ??fetch('/endpoint-a').then(()?=>?'a'),
          ??fetch('/endpoint-b').then(()?=>?'b'),
          ??fetch('/endpoint-c').then(()?=>?'c'),
          ];
          try?{
          ??const?first?=?await?Promise.any(promises);
          ??//?任何一個(gè)?Promise?為?fulfilled?狀態(tài)
          ??console.log(first);
          ??//?→???'b'
          }?catch?(error)?{
          ??//?所有?Promise?都被?rejected?了
          ??console.assert(error?instanceof?AggregateError);
          ??//?reject?結(jié)果數(shù)組
          ??console.log(error.errors);
          }

          如果所有輸入的 Promise 都被拒絕,那么 Promise.any 將會(huì)返回一個(gè) AggregateError 類型的異常,這個(gè)對象的 errors 屬性包含所有 Promise 被拒絕的屬性。

          注意不要和 Promise.race 方法弄混, race 方法是數(shù)組中有任何一個(gè) Promise 被解決或拒絕就會(huì)返回,而 any 方法是必須有一個(gè)被解決,如果所有都被拒絕是會(huì)拋出異常的。

          String.prototype.replaceAll

          String.prototype.replaceAll 提供了一種簡便的方式來替換子字符串的所有匹配,而不再需要?jiǎng)?chuàng)建全局 RegExp 。

          看下面的例子,以前你要把 queryString 中所有的 + 替換掉,需要?jiǎng)?chuàng)建一個(gè)全局的正則:

          const?queryString?=?'q=query+string+parameters';

          queryString.replace(/\+/g,?'?');

          現(xiàn)在你只需要使用 replaceAll 方法:

          queryString.replaceAll('+',?'?');

          邏輯賦值運(yùn)算符

          邏輯賦值運(yùn)算符是一種新的復(fù)合賦值運(yùn)算符,他可以把邏輯操作 &&,||或?? 與賦操作結(jié)合成一條命令。

          x?&&=?y;
          //?等同于?x?&&?(x?=?y)
          x?||=?y;
          //?等同于?x?||?(x?=?y)
          x???=?y;
          //?等同于?x????(x?=?y)


          推薦閱讀


          1、Chrome 大版本更新來了,這是一次「史詩級」增強(qiáng)

          2、你不知道的 TypeScript 泛型(萬字長文,建議收藏)

          3、如何搭建一個(gè)完美的組件庫?

          4、immutablejs 是如何優(yōu)化我們的代碼的?


          ?

          關(guān)注加加,星標(biāo)加加~

          ?

          如果覺得文章不錯(cuò),幫忙點(diǎn)個(gè)在看唄








          腦洞前端

          作者是一個(gè) Github 35K+ star 的前端架構(gòu)師。專注前端工程化,性能優(yōu)化,框架源碼,底層原理等,同時(shí)也會(huì)不定時(shí)更新LeetCode題解和面試內(nèi)容,期待你的加入,和三萬名工程師一起進(jìn)步。

          采集文章

          采集樣式

          生成長圖

          搜公眾號(hào)

          近似文章


          瀏覽 36
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  操老免费网 | 91电影成人 | 操日韩美女 | 国产精品日韩无码有码 | 无码精品在线观看 |