<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>

          Promise.prototype.finally 的作用,如何自己實(shí)現(xiàn) Promise.prototype.finally

          共 2234字,需瀏覽 5分鐘

           ·

          2021-05-22 23:45


          點(diǎn)擊上方 三分鐘學(xué)前端,關(guān)注公眾號(hào)

          回復(fù)交流,加入前端編程面試算法每日一題群


          面試官也在看的前端面試資料

          Promise.prototype.finally()  的作用

          Promise.prototype.finally() 是 ES2018 新增的特性,它回一個(gè) Promise ,在 promise 結(jié)束時(shí),無(wú)論 Promise 運(yùn)行成功還是失敗,都會(huì)運(yùn)行 finally ,類(lèi)似于我們常用的  try {...} catch {...} finally {...}

          Promise.prototype.finally()  避免了同樣的語(yǔ)句需要在 then()catch() 中各寫(xiě)一次的情況

          new Promise((resolve, reject) => {
            setTimeout(() => resolve("result"), 2000)
          })
            .then(result => console.log(result))
            .finally(() => console.log("Promise end"))

          // result
          // Promise end

          reject :

          new Promise((resolve, reject) => {
            throw new Error("error")
          })
            .catch(err => console.log(err))
            .finally(() => console.log("Promise end"))

          // Error: error
          // Promise end

          注意:

          • finally 沒(méi)有參數(shù)
          • finally 會(huì)將結(jié)果和 error 傳遞
          new Promise((resolve, reject) => {
            setTimeout(() => resolve("result"), 2000)
          })
            .finally(() => console.log("Promise ready"))
            .then(result => console.log(result))

          // Promise ready
          // result

          手寫(xiě)一個(gè) Promise.prototype.finally()

          不管 Promise 對(duì)象最后狀態(tài)如何,都會(huì)執(zhí)行的操作

          MyPromise.prototype.finally = function (cb{
            return this.then(function (value{
              return MyPromise.resolve(cb()).then(function ({
                return value
              })
            }, function (err{
              return MyPromise.resolve(cb()).then(function ({
                throw err
              })
            })
          }


          來(lái)自:https://github.com/sisterAn/blog

          最后

          歡迎關(guān)注「三分鐘學(xué)前端」,回復(fù)「交流」自動(dòng)加入前端三分鐘進(jìn)階群,每日一道編程算法面試題(含解答),助力你成為更優(yōu)秀的前端開(kāi)發(fā)!
          》》面試官也在看的前端面試資料《《
          “在看和轉(zhuǎn)發(fā)”就是最大的支持


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

          手機(jī)掃一掃分享

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

          手機(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>
                  少妇国产jp | 人妻久久久久免费肉丝足交 | 久热在线视频观看 | 无码视频免费在线观看 | 69色色|