Promise

86 阅读1分钟

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:支持链式调用,可以解决异步函数回调地狱