成人免费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

2011-11-18 09:26:18

Javafinally

2012-12-24 09:45:21

2022-01-21 08:50:15

Promise任務隊列前端

2016-06-07 14:28:39

Javascript原型

2015-07-23 11:59:27

JavascriptPromise

2020-09-24 11:46:03

Promise

2019-12-09 15:20:09

JavascriptPromise前端
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 99久久久久久久久 | 韩日在线观看视频 | 日本电影韩国电影免费观看 | 亚洲第一天堂无码专区 | 欧美一区二区三区视频在线观看 | 一区二区日韩 | jizz亚洲人| 亚洲视频在线一区 | 日韩中文字幕2019 | 国产高清久久 | av看片网站| 欧美高清视频一区 | 精品国产一区二区三区性色av | 精品国产精品国产偷麻豆 | 中文字幕在线剧情 | 国产精品欧美一区喷水 | 国产一区二区麻豆 | 亚洲码欧美码一区二区三区 | 青青99 | 国产乱码精品1区2区3区 | 国产男女猛烈无遮掩视频免费网站 | 亚洲激情在线观看 | 一级二级三级在线观看 | 国产不卡一区 | 大陆一级毛片免费视频观看 | 91欧美精品成人综合在线观看 | 开操网 | 色桃网| a级在线免费视频 | 国产一区二区黑人欧美xxxx | 日韩在线观看 | 91一区二区三区 | jlzzjlzz欧美大全 | 国产福利在线播放麻豆 | 精品一区二区久久久久久久网精 | 亚洲一区精品视频 | 亚洲一区二区三区桃乃木香奈 | 久久久久久久一级 | 色播99 | 午夜免费电影 | 国产精品久久 |