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)
  }


}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容