promise的使用

89 阅读1分钟

promise用于处理异步任务,避免传统callback的回调地狱,他有三种状态pending,fulfilled,rejected,状态一旦确定,不可在改变,一旦执行resolve或者reject,状态对应变更为fulfilled或者rejected,不能在改变了
new promise((resolve,reject)=>{
resolve('这里的内容被then接收');
reject('这里的错误被后面的catch接收')
}).then((res)=>{
console.log('接收resolve返回的数据')
}).catch((error)=>{
console.log('接收reject返回的错误')
})
几个promise的好用的方法:
promise.all([promise1,promise2....])
promise.race([promise1,promise2...])
传入的都是promise函数组成的数组
promise.all(),并行执行,等全部执行完毕,返回每个返回值组成的数组,如果有一个失败,程序失败
promise.race(),并行执行,哪个先执行完,就返回哪个个函数的返回值,
下面是自定义的waterfall方法,使用方法和promise.all(),promise.race()一样,作用是上一次函数的运行结果作为下个函数的参数,并且依次执行,返回最后一个函数的运行结果,自己写的,没有经过实践,有错误的话,请改正
promise.waterfall = (promises)=>{
let length = promises.length;
let result = null;
for(let i = 0;i<length;i++){
result = promisesi;
}
retrun result;
}