Promise 异步解决方案
一,详解promise
var p = function(){
return new Promise((resolve,reject)=>{
setTimeout(function(){
resolve(1000)
},1000)
})
}
p().then(res=>{
console.log(res1) ///1000
},error=>{
console.log(error1)
}).then(res=>{
console.log(res2) ///undefind
},error=>{
console.log(error2)
})
p().then(res=>{
console.log(res1) ///1000
return 100
},error=>{
console.log(error1)
}).then(res=>{
console.log(res2) ///100
},error=>{
console.log(error2)
})
二,Promise 的api
- all() 等所有异步操作都执行完毕后才执行 then 回调,返回一个数组,里边是每一个res
- race() 只要有一个异步操作执行完毕,就立刻执行 then 回调
- resolve() 把Promise 的状态置为完成态(Resolved),这时 then 方法就能捕捉到变化,并执行“成功”情况的回调
- 把 Promise 的状态置为已失败(Rejected),这时 then 方法执行“失败”情况的回调(then 方法的第二参数)