JavaScript 异步回调错误处理

标签 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){...})如何知道error参数实际上是一个错误?如果回调函数是 function(response, error){...} 会怎样?

最佳答案

这是 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);
});

关于JavaScript 异步回调错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38816899/

相关文章:

php - 如何在 PHP 中创建一个可由 JavaScript 处理的多维关联数组?

javascript - 在 render() 方法中无法访问 react 状态数组对象

sql-server - 从TRY…CATCH block 调用时,SQL Server存储过程的返回码为NULL。

c++ - main() 周围没有花括号——为什么会这样?

javascript - Passport.js、express.js - 在 oauth 后返回同一页面

javascript - React Modal - 在单击时使用参数调用函数,而不是在渲染时调用函数

javascript - 如何使非事件标签不可点击

javascript - 在 updatePanel 上回发后添加额外的 javascript

javascript - 导航链接在滚动位置发生变化(单页站点)

javascript - `throw ' foo '`, ` throw Error ('foo' )`, ` throw new Error ('foo' )` 有什么区别?