【问题标题】:How to use 'throw new CustomError("error_message") inside a callback function ? NodeJS/ES6如何在回调函数中使用'throw new CustomError("error_message")?节点JS/ES6
【发布时间】:2018-03-28 02:49:57
【问题描述】:

我们如何在 NodeJS/ES6 的回调中抛出错误? 同步抛出错误就可以了 -

例如-

if (!email) {
      throw new CustomError("email_missing");
}

但是在回调函数中使用'throw' 会出错。 例如 -

api.getData((err, data) => {
  if (err) {
    throw new CustomError("api_error");
  } else {
    callback(err, data);
  }
});

控制台显示以下错误-

server running on port 8080

D:\repo\generator\requestBot.js:50
  throw new CustomError("api_error");
  ^
  [object Object]

【问题讨论】:

    标签: javascript node.js ecmascript-6 try-catch throw


    【解决方案1】:

    您可以将自定义错误作为回调的第一个参数传递。

    api.getData((err, data) => {
      if (err) {
        callback(new CustomError("api_error"), null);
      } else {
        callback(err, data);
      }
    });
    

    【讨论】:

    • 感谢@ccristi 的回复。我一直在寻找它失败的原因以及如何仅在那个地方修复它。我认为它失败的原因是'this'变量在回调内部和外部是不同的。
    猜你喜欢
    • 2018-02-18
    • 2018-07-15
    • 1970-01-01
    • 2021-08-21
    • 2017-08-27
    • 2023-03-23
    • 1970-01-01
    • 2018-10-06
    • 1970-01-01
    相关资源
    最近更新 更多