2021.06.09 promise中this指向问题

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Promise.all() 和 Promise.race() 都是 Promise 的静态方法,通过这两个方法我们可以方便的处理多个 Promise 实例。但是它们之间还有一些区别。 1. Promise.all() - 接收一个由 Promise 对象组成的数组作为参数,将所有 Promise 实例包装成一个新的 Promise 实例。 - 只有所有 Promise 实例都为fulfilled状态,返回的实例才为fulfilled状态,且返回值是一个结果数组,顺序与原Promise数组相同。 - 只要有一个 Promise 实例被rejected,返回的实例就会被rejected,此时返回的结果为第一个被rejected的实例的返回值。 2. Promise.race() - 接收一个由 Promise 对象组成的数组作为参数,将所有 Promise 实例包装成一个新的 Promise 实例。 - 只要有一个 Promise 实例的状态改变了(无论是fulfilled还是rejected),返回的实例就会改变,并执行相应的回调。 - 返回值是第一个改变状态的Promise实例的返回值。 例如,我们有一个包含两个异步操作的Promise数组,并用Promise.all()和Promise.race()分别处理这两个Promise实例,得到的结果如下: ```javascript const promise1 = new Promise((resolve, reject) => setTimeout(() => resolve(1), 1000)); const promise2 = new Promise((resolve, reject) => setTimeout(() => reject(new Error('error')), 500)); Promise.all([promise1, promise2]).then(([result1, result2]) => console.log('all fulfilled', result1, result2)).catch(error => console.log('all rejected', error.message)) // 输出结果:all rejected error Promise.race([promise1, promise2]).then(result => console.log('race fulfilled', result)).catch(error => console.log('race rejected', error.message)) // 输出结果:race fulfilled 1 ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值