2016-05-09 11 views
0

私の問題は、Webサーバが稼動している間に2分ごとに関数を呼び出すことです。だから私のサーバーは、次のように起動します:ウェブサーバーの実行中に2分ごとに関数を呼び出す方法は?

app.listen(1309, function(){ 
    console.log("server is listening"); 
    doSomething(); 
}); 

そして、これは私の関数のdoSomething(ある)

var doSomething = function(){ 
    while(true) { 
     sleep.sleep(10); 
     console.log("hello"); //the original function will be called here as soon as my code works :P 
    } 
}; 

そうです機能は、10秒ごと(10秒 「原因テストケースは、したくない印刷します私のウェブサーバーを起動した後に2分のatmを待ちますが、get要求を受け取ることはできません。 (これをconsole.logでテストしました)

機能を使わずに試してみました。だから、whileループはサーバーの残りの部分をブロックすると思う。サーバーが稼働している間にこの機能を2分(または10秒)ごとに呼び出す方法はありますか?

答えて

1

あなたはsetInteval機能を使用する必要があります。しばらくはアリ機能しない理由、これは私の問題を解決し

const 2mins = 2 * 60 * 1000; 
var doSomething = function() { 
    setInterval(function() { 
    console.log("hello"); 
    }, 2mins); 
} 
+0

おかげで、あなたは私を伝えることができいただきましたsetIntervalとの違い? – nova

+1

あなたは[スリープ](https://www.npmjs.com/package/sleep)npmパッケージを使用すると思います。このパッケージは、Node.jsのイベントループを停止することによって、すべてのJavaScriptをブロックします。 'setInterval'は定義された遅延の後に関連関数を実行するネイティブのjavascript関数です。 – alexmac

関連する問題