如何不使用try-catch块在Javascript中编写异步等待

本文探讨了如何在不使用try-catch块的情况下处理JavaScript中的异步等待错误。通过介绍Promise的救援方法和ES7的async/await语法,文章展示了如何编写更清晰、更易于维护的异步代码。作者分享了一种灵感来自Go语言的解决方案,利用辅助函数来捕获和处理错误,从而保持代码的整洁和可读性。
摘要由CSDN通过智能技术生成

ES7异步/ AWAIT使我们的开发人员编写异步JS代码看起来同步。在目前的JS版本中,我们将介绍Promises,这样我们可以简化Async流程并避免回调地狱。

回调地狱是用来描述JS中的以下情况的术语:

function AsyncTask() {
     
   asyncFuncA(function(err, resultA){
   
      if(err) return cb(err);

      asyncFuncB(function(err, resultB){
   
         if(err) return cb(err);

          asyncFuncC(function(err, resultC){
   
               if(err) return cb(err);

               // And so it goes....
          });
      });
   });
}

这造成了难以维护的代码,并使控制流程成为一项艰巨的任务。只要考虑一个if语句,需要执行其他Async方法,如果某些来自callbackA的结果等于'foo'。

承诺救援

凭借承诺和ES6,我们可以简化我们以前的代码噩梦,如下所示:

function asyncTask(cb) {
   

   asyncFuncA.then(AsyncFuncB)
      .then(AsyncFuncC)
      .then(AsyncFuncD)
      .then(data => cb(null, data)
      .catch(err =
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值