回调地狱如下
function fn(callback){
setTimeout(() => {
console.log("一秒后输出")
callback()
},1000)
}
fn(function (){
console.log(1)
fn(function(){
console.log(2)
fn(function (){
console.log(3)
})
})
})
使用Promise进行优化
function foo(){
var promise = new Promise(((resolve, reject) => {
setTimeout(() => {
console.log("1秒后输出")
resolve()
},1000)
}))
return promise
}
foo().then(() => {
console.log(1)
return foo()
}).then(() => {
console.log(2)
return foo()
}).then(() => {
console.log(3)
})