promise总结

Promise

该Promise对象表示异步操作的最终完成(或失败)及其结果值。

Promise.all()

Promise.all可以将多个Promise实例包装成一个新的Promise实例

let promise1 = Promise.resolve(1)
let promise2 = Promise.resolve(2)
let promise3 = Promise.resolve(3)
Promise.all([promise1, promise2, promise3]).then(res => {
    console.log(res)//[ 1, 2, 3 ]
})

Promise.allSettled()

Promise.allSettled()方法返回一个promise,该promise在所有给定的promise已被解析或被拒绝后解析,并且每个对象都描述每个promise的结果。

  • fulfilled: 意味着操作成功完成。
  • rejected: 意味着操作失败。
  • Settled: Promise要么被完成,要么被拒绝。Promise一旦达成,它的状态就不再改变。
const promise1 = Promise.resolve(3);
const promise2 = new Promise((resolve, reject) => setTimeout(reject, 100, 'foo'));
const promises = [promise1, promise2];

Promise.allSettled(promises).
  then((results) => results.forEach((result) => console.log(result.status)));

// expected output:
// "fulfilled"
// "rejected"

catch()(捕获错误的)

该catch()方法返回a Promise并仅处理拒绝的案例。

let promise4 = new Promise((resolve, reject) => {
    throw error;
})

promise4.catch(res => {
    console.log(res)
})

finally()

该finally()方法返回一个Promise。不管是成功还是失败,它都会走finally

new Promise((resolve, reject) => {
    resolve(1212)
}).then(res => {
    console.log(res)
}).finally(res => {
    console.log('执行')
})

then()

该then()方法返回一个Promise。它最多包含两个参数:用于的成功和失败情况的回调函数Promise

new Promise((resolve, reject) => {
    resolve(1212)
}).then(res => {
    console.log(res)
})

Promise.race()

顾名思义,Promse.race就是赛跑的意思,意思就是说,Promise.race([p1, p2, p3])里面哪个结果获得的快,就返回那个结果,不管结果本身是成功状态还是失败状态。

var promise1 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 500, 'one');
});

var promise2 = new Promise(function(resolve, reject) {
    setTimeout(resolve, 100, 'two');
});

Promise.race([promise1, promise2]).then(function(value) {
  console.log(value);
  // Both resolve, but promise2 is faster
});
// expected output: "two

Promise.reject()方法

返回Promise由于给定原因而被拒绝的对象。

Promise.reject(3)

Promise.resolve()方法

返回Promise由于给定原因而被拒绝的对象。

Promise.resolve(3)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值