Promise - 07 Promise 链式调用对比回调地狱的优点

1: 调用方式更加灵活
旧的: 必须在启动异步调用之前指定
promise: 启动Promise => 返回Promise对象 => 给promise对象绑定对调函数

2: 支持链式调用,避免调用地狱
回调地狱: 回调函数嵌套使用,外部函数异步执行返回的结果是内部函数执行的条件
回调地狱的缺点: 不便于阅读,不便于异常处理

终极解决方案: async await

回调地狱
 doSomething((result) => {
   doSecondFunc (result, (newResult) => {
      doThirdFunc (newResult, (finalResult) => {
          console.log('回调地狱', finalResult)
      },failureCallback)
    },failureCallback)
}, failureCallback)
Promise 链式调用
doSomething()
  .then(r => doSecondFunc(r))
  .then(newResult => doThirdFunc(newResult))
  .then(finalResult => {
    console.log(finalResult)
  }).catch(failureCallback)
async await 是终极解决回调函地狱的方法
async function request () {
  try {
    const result = await doSomething();
    const newResult = await doSecondFunc();
    const finalResult = await doThirdFunc();
    console.log(finalResult)
  } catch (err) {
    failureCallback(err)
  }


}

你可能感兴趣的:(Promise - 07 Promise 链式调用对比回调地狱的优点)