国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

Promise掃盲貼

2024-05-06 15:37:31
字體:
供稿:網(wǎng)友

then

then函數(shù)可以return另一個promise:

const p1 = new Promise((resolve, reject) =>{  resolve('p1')})const p2 = new Promise((resolve, reject) =>{ setTimeout(() =>{  resolve('p2') },3000)})p1.then(res => { console.log(res)  return p2}).then(res =>{   // p2 resolve后才執(zhí)行  console.log(res)})//p1// 3s后輸出...// p2

那么這個p2就會代替當前p1的狀態(tài),等到新的p2的狀態(tài)修改時,下一個then才會執(zhí)行

catch

1. 作用

可以捕獲到promise程序執(zhí)行中的error,等同于  .then(null, rejection)  或  .then(undefined, rejection)

2. 可以獲取到的錯誤

promise函數(shù)體中拋出的error。在promise resolve后,再拋出錯誤,不會被捕獲

const p1 = new Promise((resolve,reject) => {throw new Error('error')})p1.catch(error => console.log(error))  // Error: error

promise的reject操作

const p2 = new Promise((resolve,reject) => reject('rejected'))p2.catch(error => console.log(error)) // rejected

then 函數(shù)體中拋出的error

const p3 = new Promise((resolve,reject) => resolve('resolved'))p3.then(res =>{  throw new Error('error')}).catch(error => console.log(error)) // Error: error

then函數(shù)可以返回一個promise(如果沒有定義catch方法),如果這個promise函數(shù)體中有reject或者error,也可以捕獲到

3. 推薦使用catch方式捕獲錯誤,而不是then的第二個參數(shù):

因為catch可以捕獲到它前面所有then方法中的錯誤

finally

不管promise最后狀態(tài)如何,都會執(zhí)行的操作 沒有參數(shù),獲取不到當前promise最后的狀態(tài)

Promise.all

1. 參數(shù)

參數(shù)不僅僅可以是數(shù)組,具有Iterator接口的對象都可以。
數(shù)組參數(shù)的每一個元素為promise實例,如果不是,就會調(diào)用Promise.resolve轉(zhuǎn)換為Promise實例

const obj = {  [Symbol.iterator]() {    let index = 0    return {      next() {        return {          // promise對象 和 其他類型都可以          value: new Promise(resolve => resolve(index++)), done: index > 2          // value: index++, done: index > 2        }      }    }  }}const p = Promise.all(obj)p.then(res => {  console.log(res) // [0, 1]}) 

2. 狀態(tài)

const p = Promise.all([p1, p2, p3]);

p的狀態(tài)由p1、p2、p3決定,分成兩種情況:

只有p1、p2、p3的狀態(tài)都變成fulfilled,p的狀態(tài)才會變成fulfilled,此時p1、p2、p3的返回值組成一個數(shù)組,傳遞給p的回調(diào)函數(shù)。 只要p1、p2、p3之中有一個被rejected,p的狀態(tài)就變成rejected,此時第一個被reject的實例的返回值,會傳遞給p的回調(diào)函數(shù)。

3. catch

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 襄垣县| 东乡县| 碌曲县| 宁武县| 扎鲁特旗| 朝阳市| 宣城市| 绥化市| 宁陵县| 穆棱市| 南宁市| 监利县| 扶绥县| 阜南县| 永靖县| 得荣县| 衢州市| 耿马| 义乌市| 贵南县| 鄂伦春自治旗| 阿城市| 分宜县| 耒阳市| 新源县| 手游| 普兰店市| 郑州市| 集安市| 霍邱县| 肥西县| 锡林郭勒盟| 白玉县| 阜阳市| 广南县| 吉林市| 霞浦县| 会理县| 随州市| 迭部县| 临汾市|