node.js - nodeJS回调错误参数

标签 node.js callback

我现在正在学习 node,我对 err 参数感到困惑。 我认为它应该是回调函数的第一个参数,但我在许多回调函数中都没有看到它。谁能给我解释一下?谢谢!

最佳答案

有许多不同种类的函数,尤其是回调函数。回调函数的 Node.js 标准是以下形式:

function(err, arg1, arg2, ...)

其中 arg1 等仅在相关时出现,但 err 参数始终位于第一个。这与许多历史 JavaScript 代码相反,错误是最后一个参数。

Node.js 强制将错误作为第一个参数的方法,即使没有错误也会使忽略错误变得更加困难,您很少会忘记声明该参数,并使它们的位置可预测。

现在这只适用于通用回调的情况。也就是说,在某些情况下,调用函数在将来的某个时间点触发单一回调。你会看到它们是这样使用的:

doStuff(function(err, successValue) { ... });

还有一种由 jQuery 推广的样式,根据操作的结果,一个或多个 回调将被触发:

doStuff({
  success: function(successValue) { ... },
  error: function(err) { ... },
  timeout: function() { ... }
});

请注意,在这种情况下,您可能同时触发了错误和超时回调。您也没有义务填写所有这些内容。

这种方法的缺点是无法预测哪些人会被调用,并且存在无意中处理两次的风险。

关于node.js - nodeJS回调错误参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37489314/

相关文章:

javascript - jQuery 动画回调 + 主干 : Cannot call method 'remove' of undefined

javascript - 在 Node js 中解析 Json Twitter 响应

javascript - 有没有办法通过管理面板编辑我的文件

javascript - 调用 JavaScript 回调

ruby-on-rails - 如何通过关联在 has_many 中使用回调?

ruby-on-rails - before_update 语法

javascript - JS : Callback is not a function inside if else statement

node.js - Windows 上多 Node 和 Fugue 的替代方案?

node.js - 如何将 webpack 与 monorepo 一起使用(yarnpkg 工作区)

node.js - Node 中带有 aes-128-gcm 的 "Unsupported state or unable to authenticate data"