0

我正在通过 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 会更容易,但在我使用的一个模块的情况下,它不是。有这种条件回调是不是很奇怪?我该如何干净地处理这个?

4

1 回答 1

1

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

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

您的回调应该在成功和失败时都被调用。成功时,err 对象将为空。

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

当无事可做时,节点将退出进程。如果你需要在退出发生之前做一些事情,你可以监听 process.exit。

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

于 2012-10-13T11:31:09.403 回答