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オブジェクトはnullになります。

もちろんこれは慣例ですが、おそらくこの慣習を無視するモジュールはたくさんあります。使用しているモジュールを修正するか、別のモジュールを使用する必要があります。

何もすることが残っていない場合、ノードはプロセスを終了します。終了が発生する前に何かを行う必要がある場合は、process.exitをリッスンできます。

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

于 2012-10-13T11:31:09.403 に答える