JavaScript异步回调错误处理

时间:2016-08-07 17:47:43

标签: javascript jquery error-handling asynccallback

我有一个关于回调,错误和异步函数的问题。 下面我们有一个异步JS回调的例子,它可以处理错误。否则它会对收到的对象做一些事情。

doSomething(aThing, function(error, response) {
  if (error) {
    return handleError(error);
  } else if (response) {
    return doSomething;
  }
});

我想,如果有错误,其中一个参数是错误对象,另一个参数是nullundefined

我的问题是:匿名回调function (function(error, response){...})如何知道错误参数实际上是错误?如果回调函数是function(response, error){...}

,该怎么办?

2 个答案:

答案 0 :(得分:0)

它不会知道它是一个错误,它会像你所说的那样回归为null或undefined。通常,如果您尝试使用未定义的内容但是您希望从数据拉取中定义它,则会出现错误。

一种可以处理错误的方法是,如果您从中提取的数据是未定义的或为null 即..

if (data.response === undefined || data.response === null){
define error
}
if (error) {do something}

答案 1 :(得分:0)

这是NodeJS中使用的常见模式:Error First Callback

基本上,应该调用每个回调,至少有一个参数指示哪里有错误...

因此,如果第一个参数是null,您可以假设没有错误......

var fs = require('fs');

fs.readFile("somefile.txt", function(err, data) {
  if(err) {
    console.log('We have some error', err);
    return;
  }
  
  //do something with your data
  console.log('success', data);
});