{
// 回调函数 在函数执行结束之后,再去执行一个函数
// 一层回调
function ajax(cb) {
setTimeout(() => {
cb && cb(); //如果左边是true则返回右边,如果是false则返回false
}, 1000)
}
ajax(() => {
console.log("1");
})
三层回调
function ajax(cb) {
setTimeout(() => {
cb && cb(cb3 => {
console.log(2);
setTimeout(() => {
cb3 && cb3()
}, 1000)
})
}, 1000)
}
ajax((cb2) => {
console.log("1");
setTimeout(() => {
cb2 && cb2(() => {
console.log(3);
})
}, 1000)
})
}
// Promise 改变回调函数
function ajax() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
}, 1000)
})
}
ajax().then(() => {
console.log(1);
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve()
}, 1000)
})
}).then(() => {
console.log(2);
return new Promise((resolve) => {
setTimeout(() => {
resolve()
}, 1000)
})
}).then(() => {
console.log(3);
})
}