浅析Promise

Promise 的用途

Promise是异步编程的一种解决方案,比传统的解决方案更合理和规范。

相比较传统方法,Promise的三大好处有:

  1. 回调的名字和顺序规范

  2. 避免回调地狱,让代码可读性更强

  3. 方便捕获错误

如何创建一个 new Promise

return new Promise((resolve,reject)=>{...})

任务成功则调用resolve(result)

任务失败则调用reject(error)

resolvereject会再去调用成功和失败函数

如何使用 Promise.prototype.then

getData(1)
.then(function(x){
  console.log(x)
  return getData(2)
}, e=>{console.log(e)})
.then(function(x){
  console.log(x)
  return getData(3)
}, e=>{console.log(e)})
.then(function(x){
  console.log(x)
}, e=>{console.log(e)})
复制代码

then()接受两个函数

成功的时候执行第一个函数,失败的时候执行第二个函数

如何使用 Promise.all

当我们需要获得多个数据才进行下一步时使用Promise.all

Promise.all([func1(), func2(), func3()]).then()
复制代码

Promise.all需要传入一个数组,数组中的元素都是Promise对象,当这些对象都执行成功,执行then中的第一个函数,失败时只能获得第一个失败Promise的错误数据

Promise.all是大家一起到终点,一个失败全都失败

如何使用 Promise.race

Promise.racePromise.all相对应,哪个Promise对象最快得到结果,就最先用谁的结果(只要快就行,不管失败还是成功)

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享