成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Promise.prototype.finally 的作用,如何自己實現 Promise.prototype.finally

開發 架構
Promise.prototype.finally() 是 ES2018 新增的特性,它回一個 Promise ,在 promise 結束時,無論 Promise 運行成功還是失敗,都會運行 finally ,類似于我們常用的 try {...} catch {...} finally {...}。

[[396754]]

本文轉載自微信公眾號「三分鐘學前端」,作者sisterAn。轉載本文請聯系三分鐘學前端公眾號。

Promise.prototype.finally() 的作用

Promise.prototype.finally() 是 ES2018 新增的特性,它回一個 Promise ,在 promise 結束時,無論 Promise 運行成功還是失敗,都會運行 finally ,類似于我們常用的 try {...} catch {...} finally {...}

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

  1. new Promise((resolve, reject) => { 
  2.   setTimeout(() => resolve("result"), 2000) 
  3. }) 
  4.   .then(result => console.log(result)) 
  5.   .finally(() => console.log("Promise end")) 
  6.  
  7. // result 
  8. // Promise end 

reject :

  1. new Promise((resolve, reject) => { 
  2.   throw new Error("error"
  3. }) 
  4.   .catch(err => console.log(err)) 
  5.   .finally(() => console.log("Promise end")) 
  6.  
  7. // Error: error 
  8. // Promise end 

注意:

  • finally 沒有參數
  • finally 會將結果和 error 傳遞
  1. new Promise((resolve, reject) => { 
  2.   setTimeout(() => resolve("result"), 2000) 
  3. }) 
  4.   .finally(() => console.log("Promise ready")) 
  5.   .then(result => console.log(result)) 
  6.  
  7. // Promise ready 
  8. // result 

手寫一個 Promise.prototype.finally()

不管 Promise 對象最后狀態如何,都會執行的操作

  1. MyPromise.prototype.finally = function (cb) { 
  2.   return this.then(function (value) { 
  3.     return MyPromise.resolve(cb()).then(function () { 
  4.       return value 
  5.     }) 
  6.   }, function (err) { 
  7.     return MyPromise.resolve(cb()).then(function () { 
  8.       throw err 
  9.     }) 
  10.   }) 

 

來自:https://github.com/sisterAn/blog

 

責任編輯:武曉燕 來源: 三分鐘學前端
相關推薦

2021-03-27 10:56:17

promisethenfinally

2021-03-19 09:52:13

ES2018異步迭代開發

2021-04-28 08:21:21

Promise.any服務器場景

2021-04-27 08:31:37

Promisereject信息

2021-01-18 08:24:51

JavaScriptMicrotask微任務

2020-12-15 08:01:24

Promise參數ES6

2018-03-13 16:04:45

Promise執行順序

2023-09-15 15:31:23

異步編程Promise

2017-05-11 20:20:59

JavascriptPromiseWeb

2020-07-29 17:35:08

Promise源碼前端

2022-09-28 12:23:36

Promise代碼

2021-03-09 07:37:42

技術Promise測試

2020-09-18 09:02:20

JavaScript

2012-12-24 09:45:21

2011-11-18 09:26:18

Javafinally

2022-01-21 08:50:15

Promise任務隊列前端

2015-07-23 11:59:27

JavascriptPromise

2016-06-07 14:28:39

Javascript原型

2020-09-24 11:46:03

Promise

2019-12-09 15:20:09

JavascriptPromise前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久热精品视频 | 国产精品欧美一区二区三区不卡 | 精品亚洲一区二区三区 | 91精品欧美久久久久久久 | 亚洲精品国产一区 | 亚洲v日韩v综合v精品v | 亚洲免费一区二区 | 黄视频网站免费观看 | 日本精品一区二区三区在线观看 | 欧美日韩国产一区二区 | 视频一区中文字幕 | 美女福利视频一区 | 亚洲国产精品99久久久久久久久 | 国产精品久久av | 亚洲va在线va天堂va狼色在线 | 国产成人自拍一区 | 欧美啪啪网站 | 一区二区视频免费观看 | 国产视频中文字幕在线观看 | 成人午夜影院 | 亚洲一区二区三区在线 | 国产黄色免费网站 | 中文字幕在线第一页 | 久久高清亚洲 | 日韩免费av | 国产激情 | 老熟女毛片 | 人人干人人看 | 99久久精品免费看国产四区 | 99精品国产一区二区青青牛奶 | 日韩精品一区二区三区中文在线 | 成人三级视频在线观看 | 免费中文字幕日韩欧美 | 欧美精品久久久久久久久老牛影院 | 久久99深爱久久99精品 | www国产亚洲精品久久网站 | 国产激情福利 | 亚洲国产一区二区三区四区 | 在线一区二区三区 | 日韩中文字幕在线 | 久久精品亚洲一区 |