国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表

圖片精選

主站蜘蛛池模板: 安阳县| 墨江| 英吉沙县| 赤城县| 大余县| 高阳县| 衡山县| 竹北市| 绥中县| 铜陵市| 山丹县| 镶黄旗| 平湖市| 德安县| 盘山县| 综艺| 普兰县| 康定县| 大余县| 台中市| 嘉禾县| 城固县| 旺苍县| 淳化县| 龙井市| 巴塘县| 全州县| 什邡市| 合阳县| 县级市| 河曲县| 阳谷县| 龙川县| 上犹县| 安平县| 双牌县| 黄大仙区| 灌南县| 衡山县| 宾川县| 江西省|