Promise 的用途
Promise是异步编程的一种解决方案,比传统的解决方案更合理和规范。
相比较传统方法,Promise的三大好处有:
-
回调的名字和顺序规范
-
避免回调地狱,让代码可读性更强
-
方便捕获错误
如何创建一个 new Promise
return new Promise((resolve,reject)=>{...})
任务成功则调用resolve(result)
任务失败则调用reject(error)
resolve
和reject
会再去调用成功和失败函数
如何使用 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.race
和Promise.all
相对应,哪个Promise对象最快得到结果,就最先用谁的结果(只要快就行,不管失败还是成功)
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END