1:传统的CallBack回调函数
let ajax=function(callback){
//dosomething
this.setTimeout(()=>{
callback&&callback()
},1000)
}
ajax(console.log("isCallBack"))
多层回调回会导致代码复杂/难以维护
2:promise改造
let ajax= function(){
//返回promise实例,有.then/.catch方法
return new Promise(function(resolve,reject){
setTimeout(()=>{
resolve()
},1000)
})
}
ajax().then(
//下一步的方法
()=>{
console.log("promise改造")
},
// ()=>{
// console.log("reject")
// }
)
3:catch方法
let ajax =function(num){
//dosomething
return new Promise(function(resolve,reject){
if(num>6){
resolve();
}else{
throw new Error("ISERROR")
}
})
}
ajax(2).then().catch()
4:全部执行完成,Promise.all;
Promise.all([
ajax(),
ajax(),
ajax(),
])
当所有的ajax全部执行完成后,才会执行下一步
.then()
5:只要有一个promise执行结束 Promise.race
Promise.race([
ajax(),
ajax(),
ajax(),
])
.then()