promise
为了实现某些逻辑经常会写出层层嵌套的回调函数,如果嵌套过多,会极大影响代码可读性和逻辑,这种情况也被成为回调地狱
function sayhello(name, callback) { setTimeout(function () { console.log(name); callback() }, 5000); }
sayhello("first", function () {
sayhello("second", function () {
sayhello("third", function () {
console.log("end");
});
});
});
使用Promise对象解决回调地狱
function sayhello(name) { return new Promise(function (resolve,reject){ setTimeout(function () { console.log(name); resolve(); reject() }, 5000); }) }
sayhello("first").then(function () {
return sayhello("second")
}).then(function () {
return sayhello("third")
}).then(function (){
console.log('end')
}).catch(function (err){
console.log(err)
})