Promise优点:
1:指定回调函数的方式更加灵活
旧的:必须在指定异步操作之前指定
Promise:启动异步任务 ---> 返回Promise对象 ---> 给Promise对象绑定回调函数(甚至可以在异步操作执行之后指定回调函数)
// 传统的
function fn(callback1, callback2) {
setTimeout(() => {
const flag = false
if(flag) {
callback1(flag)
}
else {
callback2(flag)
}
}, 2000)
}
fn(function (value) {console.log(value)}, function (value) {console.log(value)})
// Promsie
const p = new Promise((resolve, reject) => {
setTimeout(() => {
resolve('成功')
}, 1000)
})
p.then((value) => {
setTimeout(() => {
console.log(value)
}, 3000)
}, (error) => {
setTimeout((error) => {
console.log(error)
}, 3000)
})
2:支持链式调用,可以解决异步函数回调地狱