国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

ES6新增語法—Promise詳解

開發 前端
promise是一個對象,從它可以獲取異步操作的消息。有all、race、reject、resolve這幾個方法,原型上有then、catch等方法。

[[417665]]

Promise介紹

promise是一個對象,從它可以獲取異步操作的消息。有all、race、reject、resolve這幾個方法,原型上有then、catch等方法。

Promise的兩個特點:

  • 對象的狀態不受外界影響。Promise對象獲取的是異步操作,有三種狀態:pending(進行中)、fulfilled(已成功)、reject(已失敗)。除了異步操作的結果,其他操作都無法改變這個狀態。
  • 一旦狀態改變,就不會再變。從pending變為fulfilled和從pending變為rejected狀態,只要處于fulfilled和rejected,狀態就不會再變。

狀態的缺點:

無法取消Promise,一旦新建它就會立即執行,無法中途取消。

如果不設置回調函數,Promise內部拋出錯誤,不會反應到外部。

當處于pending狀態時,無法得知目前進展到哪一階段。

使用語法:

  1. let p = new Promise( (resolve,reject)=>{ 
  2.  
  3. //resolve 和reject是兩個函數 
  4.  
  5. }) 
  6.  
  7. p.then
  8.  
  9. ()=>{}, // 傳入的resolve函數,resolve翻譯成中文是解決 
  10.  
  11. ()=>{} //傳入的reject函數,reject翻譯成中文是拒絕 
  12.  
  13. ).catch((reason,data)=>{ 
  14.  
  15. console.log("catch失敗執行回調拋出原因",reason) 
  16.  
  17. }) 

then方法

then方法接收兩個參數作為參數,第一個參數是Promise執行成功時的回調,第二個參數是Promise執行失敗的回調,兩個函數只會有一個被調用。

通過.then添加的回調函數,不論什么時候,都會被調用,而且可以添加多個回調函數,會一次按照順序并且獨立運行。

  1. const p =new Promise((resolve,reject)=>{ 
  2.  resolve("成功"
  3. }) 
  4. p.then((res)=>{ 
  5.  console.log(res)//返回成功 
  6. },(err)=>{ 
  7.  console.log(err) 
  8. }) 

帶有多個回調函數時

  1. const p =new Promise((resolve,reject)=>{ 
  2.  resolve(1) 
  3. }) 
  4. p.then((res1)=>{ 
  5.  console.log('res1',res1) // 1 
  6.  return res1 * 2; 
  7. }).then((res2)=>{ 
  8.  console.log('res2',res2) //2 
  9. }).then((res3)=>{ 
  10.  console.log('res3',res3) //undefined 
  11.  return Promise.resolve('resolve'
  12. }).then(res4=>{ 
  13.  console.log('res4',res4) //resolve 
  14. }) 

catch用法

與Promise對象方法then并行的還有一個catch方法,用來捕獲異常的,與try...catch類似,

  1. const p1 = new Promise((resolve,reject)=>{ 
  2.  var num = Math.random()*10 ;//隨機生成一個0-10的數字  
  3.  console.log("num",num) 
  4.  if(num > 5){ 
  5.   resolve('大于5'
  6.  }else
  7.   reject("小于5"
  8.  } 
  9. }) 
  10. p1.then(res=>{ 
  11.  console.log("res",res) // res 大于5 
  12. }).catch(err=>{ 
  13.  console.log("err",err) // err 小于5 
  14. }) 

all方法

all方法表示所有的異步操作完成后才執行回調,返回結果,返回的數據是個數組,多個請求返回的數據組合。與then方法同級。

使用語法:

  1. Promise.all([ p,p1,p2.... ]).then() 

使用實例如下:

  1. const p1 = new Promise((resolve,reject)=>{ 
  2.  resolve({ 
  3.   name:'倩倩' 
  4.  }) 
  5. }) 
  6. const p2 = new Promise((resolve,reject)=>{ 
  7.  resolve(['a','b']) 
  8. }) 
  9. const p3 = new Promise((resolve,reject)=>{ 
  10.  resolve('二傻子'
  11. }) 
  12. Promise.all([p1,p2,p3]).then(res=>{ 
  13.  console.log(res)//[{name:'倩倩'}, ['a','b'], "二傻子"
  14. }) 

race方法

all是等所有的異步操作都執行完成了再執行回調,而race方法是相反的,只要有一個執行完成,不論結果是成功還是失敗,都開始執行回調,其余的不會再進入race的回調。返回的數據取決于最早執行完畢返回的數據。

  1. const p1 = new Promise((resolve,reject)=>{ 
  2.  resolve({ 
  3.   name:'倩倩' 
  4.  }) 
  5. }) 
  6. const p2 = new Promise((resolve,reject)=>{           
  7.  setTimeout(()=>{ 
  8.   resolve(['a','b']) 
  9.  },1000) 
  10. }) 
  11. const p3 = new Promise((resolve,reject)=>{ 
  12.  setTimeout(()=>{ 
  13.   resolve('二傻子'
  14.  },2000) 
  15. }) 
  16. Promise.race([p1,p2,p3]).then(res=>{ 
  17.  console.log(res)//{name:'倩倩'
  18. }) 

為什么使用Promise?

Promise的優點

  • 指定回調函數的方式更加靈活。
  • 支持鏈式調用,可以解決回調地獄問題。回調地獄就是回調函數嵌套調用,外部回調函數異步執行的結果是嵌套的回調函數的執行條件。回調地獄的缺點是不便于閱讀和異常處理。

Promise的缺點

  • 無法取消Promise,一旦新建就會立即執行,無法暫停和取消。
  • 如果不設置回調函數,Promise內部拋出的錯誤,不會反應到外部。
  • 當處于pending(進行中)狀態時,無法得知目前進展到哪一個階段。

 

責任編輯:姜華 來源: 今日頭條
相關推薦

2021-08-18 07:05:57

ES6Asyncawait

2021-07-30 07:10:07

ES6函數參數

2021-07-16 07:26:48

ES6javascript開發語言

2021-08-02 05:51:29

foreachES6數組

2024-06-26 08:18:08

ES6模板字符串

2022-01-26 07:18:57

ES6WeakSetMap

2024-03-07 08:53:01

前端異步Promise

2021-04-25 13:18:51

Wine 6.7LinuxWindows

2023-05-10 08:21:42

Es6Set

2023-11-23 10:21:11

ECMAScriptJavaScript

2017-10-09 18:21:20

JavaScriptES6ES8

2017-08-31 14:25:34

前端JavascriptES6

2020-07-01 07:58:20

ES6JavaScript開發

2021-06-23 10:32:24

前端ES6代碼

2020-11-16 08:10:04

ES6迭代器JavaScript

2022-07-26 09:02:15

ES6ES13ECMAScript

2023-03-01 15:39:50

JavaScrip對象屬性ES6

2023-05-28 23:49:38

JavaScrip開發

2022-01-12 15:50:24

JavaScript開發循環

2018-07-16 16:10:03

前端JavaScript面向對象
點贊
收藏

51CTO技術棧公眾號

免费国产a级片| 欧美一级淫片aaaaaaa视频| www.xxx黄| 精品免费二区三区三区高中清不卡 | 久久精品久久久久久| 2022中文字幕| 日韩成人在线一区| 97久久精品人人爽人人爽蜜臀| 国产乱色国产精品免费视频| 中文字幕精品网| 日本xxxxxxx免费视频| 牛牛影视久久网| 精品久久久久久久久久久久久久 | 国产一区二区色| 黄色av网站在线| 新狼窝色av性久久久久久| 亚洲精品久久久久久久久久久久久| 久久久久久美女| 又黄又爽在线免费观看| 亚洲精品黄色| 亚洲日韩欧美视频| 手机在线成人免费视频| 久久丁香综合五月国产三级网站| 精品国产一区二区精华| 一区二区三区在线视频观看58| 欧美国产视频在线| 久久精品视频一区二区三区| 欧美写真视频网站| 国产精品日韩一区二区免费视频| 欧美国产视频在线观看| 99在线视频影院| www.日本不卡| 国产成人aa精品一区在线播放| 国产午夜在线视频| 国产v综合v亚洲欧| 一区二区三区精品99久久| 国产精品一区二区三区不卡| 大桥未久一区二区三区| 蜜桃在线一区二区三区精品| 成人女人a毛片在线看| 国产精品乱码久久久久| 韩国视频理论视频久久| 成人免费看片网址| 人人视频精品| 日韩欧美在线视频| 真人抽搐一进一出视频| 1024精品久久久久久久久| 亚洲国产一区二区三区在线观看 | 深夜福利日韩在线看| 久草电影在线| 国产成人午夜电影网| 国产精品欧美久久久| 成人性生交大片免费观看网站| 亚洲一区二区伦理| 亚洲女爱视频在线| 亚州精品天堂中文字幕| 卡通动漫国产精品| 欧美丝袜美女中出在线| 国产免费视频在线| 亚洲黄一区二区| 成人乱码手机视频| 欧美日韩午夜影院| 男女高潮又爽又黄又无遮挡| 中文在线日韩| 欧美精品一二区| av色综合久久天堂av色综合在| 欧美极品aⅴ影院| 日韩欧美亚洲在线| 欧美少妇xxxx| 日日狠狠久久偷偷四色综合免费| 在线看的av| 91麻豆精品一区二区三区| 久久国产精品 国产精品| 美女一区二区在线观看| 国产一区私人高清影院| 日韩黄色小视频| 成人免费看吃奶视频网站| 日韩国产网站| 制服丝袜成人动漫| 在线一区观看| 亚洲国产精品99| 国产精品99999| 亚洲欧美综合精品久久成人| 国产成人精品免费视| 色综久久综合桃花网| 日韩精品永久网址| 欧美激情久久久| 外国成人直播| 国产一区二区在线免费视频| 精品一区二区三区在线观看| 手机视频在线观看| 日韩欧美一区电影| 国产日本在线| 国产一区久久精品| 国产一区高清在线| 国产精品免费一区二区三区观看| 国产一区二区伦理片| 在线成人一区| 日韩亚洲精品电影| 亚洲第一区视频| 欧美一区二三区| 亚洲综合小说图片| 亚洲色无码播放| 91丝袜美腿高跟国产极品老师| 国产亚洲观看| freemovies性欧美| 色噜噜狠狠成人网p站| 久久午夜夜伦鲁鲁一区二区| 欧美在线视频在线播放完整版免费观看| 麻豆国产在线| 日韩午夜激情av| 91九色在线porn| 欧美在线观看视频一区二区 | 亚洲日本在线观看视频| 亚洲视频一二三| 午夜视频久久久| 教室别恋欧美无删减版| 亚洲国产欧美一区二区三区同亚洲 | 午夜精品一区二区三区在线视频| 奇米色欧美一区二区三区| 欧美精品一区二区三区很污很色的 | 日本亚洲视频| 亚洲精品欧美一区二区三区| 99视频在线观看一区三区| 欧美亚洲高清| 欧美日韩一区二区三区不卡视频| 国产高清视频色在线www| 欧美性在线视频| 欧美精品1区2区| 丁香婷婷久久| 欧美高清videos高潮hd| 国产精品视频看| 国产美女特级嫩嫩嫩bbb片| 91久久精品国产91性色tv| 免费成人你懂的| 在线播放 亚洲| 国产精品久久久久久亚洲毛片| 免费福利影院| 久久久高清一区二区三区| 免费一级特黄特色毛片久久看| 欧美激情精品久久久久| 成人福利在线视频| 亚洲国产美女精品久久久久∴| 美女视频黄久久| 午夜不卡影院| 中文字幕精品一区二区三区精品| 能在线看的av| 国产福利一区在线| 国产传媒在线播放| 亚洲 日韩 国产第一| 国产一区二区三区直播精品电影| 精品少妇一区二区三区视频免付费| 午夜精品美女久久久久av福利| 国内精品中文字幕| 中文字幕二三区不卡| av不卡免费电影| 亚洲国产精品久久不卡毛片| 免费萌白酱国产一区二区三区| 欧美大片网站| 国产91色在线观看| 亚在线播放中文视频| 黄网站在线免费看| 国产麻豆一区二区三区| 香蕉久久久久久| 成人一区视频| 国产成人a视频高清在线观看| 欧美大片免费| 日韩在线成人| jazzjazz国产精品久久| 色中色综合影院手机版在线观看| 91久久高清国语自产拍| 综合网插菊花| 精品人在线二区三区| 欧美性感一区二区三区| 日本福利视频导航| 精品中文字幕在线2019| 一区二区三区四区五区视频在线观看 | 高清国语自产在线观看| 成人免费在线看片| 在线看福利67194| 午夜精品在线看| 97超碰在线免费| 91精品国产91久久久久麻豆 主演| 一本久久综合亚洲鲁鲁五月天 | 日韩国产高清一区| 麻豆国产va免费精品高清在线| 久久久久一区| 成人频在线观看| 久久精品国产69国产精品亚洲 | 成人香蕉社区| 第一视频专区在线| 久久精品免费一区二区| 亚洲最大的免费| 国产精品国产三级国产aⅴ无密码| 亚洲人metart人体| 国产成人免费| 国产黄在线播放| 日韩中文字幕免费在线| 欧美激情导航| 国产精品久久久久aaaa九色|