-1

そのため、開始時にオブジェクトを作成するノードアプリがあります。

function my_object(){

}

my_object.prototype.say_lol = function() {
    setTimeout(function(){
        console.log('lol');
    }, 1000);
};


var ping = new my_object();

ping.say_lol();

process.on( 'SIGINT', function() {

    delete global.ping; // Please?


    // pseudo code to go update something in the database or whatever
    setTimeout(function(){
        process.exit();
    }, 4000);

});

それが終了したら、そのオブジェクトを削除して、タイムアウトが保留されている間、何度も笑って発火しないようにする必要があります。これを行うエレガントな方法はありますか?

4

3 に答える 3

0

本当の答えではないことは理解していますが、これで問題は解決しました。クラスターでノード プロセスを実行し、削除したいすべての子プロセスを強制終了しました。私の例では、子供たちが無限のタスクを実行していたため、これが機能し、停止する必要がある場合、これが論理的に中止できる唯一の方法でした。

于 2013-10-04T23:51:09.540 に答える
0

コールバックの発火を止める方法がわかりません。ping私のアプローチは、別の変数で の状態を追跡しif、不要なコールバックを起動するコードのチャンクをラップするステートメントを使用することです。

function my_object(){ };
var stillHere = true;

my_object.prototype.say_lol = function() {
  setTimeout(function(){
    if(stillHere){  
      console.log('lol');
    }
  }, 2000);
};

var ping = new my_object();
ping.say_lol();

process.on( 'SIGINT', function() {
  delete global.ping; // Please?
  stillHere = false;
  setTimeout(function(){
    process.exit();
  }, 4000);
});
于 2013-10-03T15:52:59.357 に答える