9

ネットワーク操作を実行するモジュールを node.js に作成しました。このモジュール (以下の変数) を使用する小さなスクリプトを作成しましたcheck。次のようになります。

check(obj, function (err, results) {
    // ...
    console.log("Check completed");
});

ここで興味深いのは次のとおりです。このコードがテストの一部として実行されるとmocha、テストは期待どおりに終了します。ログ ステートメントが表示され、プロセスが終了します。

コードがスタンドアロン ノード スクリプトとして実行されると、ログ ステートメントが出力されますが、プロセスはハングするだけです。

デバッグしようとして、 を使用してプログラムを開始し、 を--debug-brk使用するとnode-inspector、早期に終了します! process.on 'exit'と呼ばれていることが分かります。モジュール内のいくつかの内部コールバックがまだ呼び出されていない間に終了します。したがって、上記のログ ステートメントも出力されません。

私は今立ち往生しており、なぜこれが起こっているのかわかりません。誰かが同様の行動を見たことがありますか?

4

2 に答える 2