Node.js回调以及何时退出

时间:2012-10-13 10:21:09

标签: javascript node.js

我正在通过Smashing Node.js工作,到目前为止看起来很棒,但是有一些关于编写异步代码和使用我不理解的回调的东西。

如果我有这样的代码:

myObject.doSomethingAsync( errorCallback );
// all done, want to exit here, but errorCallback may be called
…

function errorCallback(args) {
    // do something that takes a few seconds
}

请记住,我意味着退出;这是一个计划任务而不是服务器。

我如何知道何时退出?如果总是调用errorCallback会更容易,但是在我正在使用的一个模块的情况下,它不是。有这种条件回调是不是很奇怪?我该如何干净利落地处理这个问题?

1 个答案:

答案 0 :(得分:1)

Node中的约定是让回调接受一个Error对象作为第一个参数。

http://blog.gvm-it.eu/post/22040726249/callback-conventions-in-node-js-how-and-why

应该在成功和失败时调用您的回调。成功时,错误对象将为null。

当然这是惯例,但可能有很多模块忽视了这个惯例。您应该尝试修复正在使用的模块或使用其他模块。

当没有任何事情要做时,Node将退出该进程。如果您需要在退出之前执行某些操作,则可以侦听process.exit。

http://nodejs.org/api/process.html#process_event_exit