1.声明:什么是回调地狱
回调地狱就是:js异步编程,嵌套多个回调函数,每一层的回调函数都需要依赖上一层的回调执行完,所以形成了层层嵌套的关系,那就是回调地狱.
(注:不理解?不存在的,上代码!)
setTimeout(function(){
console.log("666");
setTimeout(function(){
console.log("777");
setTimeout(function(){
console.log("888");
}
,1000)
}
,1000)
}
,1000)
这种就是回调地狱!
2.引出问题:怎么解决回调地狱?
这里说一种方法吧,就是使用promise.
依靠promise的封装解决.
var p1=new Promise(function(resolve,reject){
setTimeout(function(){
console.log("666");
resolve();
},1000)
})
function p2(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log("777");
resolve();
},1000)
})
}
function p3(){
return new Promise(function(resolve,reject){
setTimeout(function(){
console.log("888");
resolve();
},1000)
})
}
p1.then(function(){
return p2();
}).then(function(){
return p3();
})
这样就能解决回调地狱了