ホームページ >ウェブフロントエンド >jsチュートリアル >Node.js での setTimeout と setInterval の使用法をすぐにマスターする
Node.js には、js と同様に、イベント スケジューリングを実装するためのタイマー、タイムアウト タイマー、インターバル タイマー、タイムリー タイマー、および process.nextTick(callback) 関数もあります。今日は、setTimeout と setInterval の使用方法を学びましょう。
1. setTimeout タイムアウト タイマー (GCD の after と同様)
node.js では、node.js 組み込みの setTimeout(callback, lateMillSeconds, [args]) メソッドを使用できます。 setTime() が呼び出されると、delayMillSeconds がタイマー オブジェクト ID を返した後にコールバック関数が実行されます。この ID は、layMillSeconds が期限切れになる前にその ID を clearTimeout(timeoutId) に渡すことでキャンセルできます。
function myfunc(){ console.log("myfunc"); }; var mytimeout=setTimeout(myfunc,1000); clearTimeout(mytimeout);
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js Process finished with exit code 0
clearTimeout(mytimeout); 行をコメントすると、myfunc() が実行されることがわかります。
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js myfunc Process finished with exit code 0
2. setInterval インターバルタイマー (GCD のdispatch_source_t または NSTimer に似ています)
インターバルタイマーは、setTimeout と同様に、node.js に組み込まれています。 ,[args]) を使用してタイマー オブジェクト ID を作成して返し、clearInterval() を通じてキャンセルします。
/** * Created by Administrator on 2016/3/11. */ function myfunc(Interval){ console.log("myfunc "+Interval); } var myInterval=setInterval(myfunc,1000,"Interval"); function stopInterval(){ clearTimeout(myInterval); //myInterval.unref(); } setTimeout(stopInterval,5000);
上記のコードは setInterval のコールバック関数 myfunc を作成するもので、setInterval は 1 秒ごとに実行され、そのコールバック関数はインターバル タイマーをキャンセルします。
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe Interval.js myfunc Interval myfunc Interval myfunc Interval myfunc Interval Process finished with exit code 0
3. イベントループからタイマー参照をキャンセルします
イベントキューにタイマーコールバック関数しかない場合、それらを実行したくない場合は、返されたオブジェクトの unref() 関数を使用できます。 setInterval と setTimeout で通知する イベントループは継続しません。
unref() を setTimeout と組み合わせて使用する場合、イベント ループを起動するために独立したタイマーを使用する必要があります。大量に使用するとパフォーマンスにも影響するため、使用は最小限に抑えてください。
4. setTimeout と setInterval の実行時間は正確ではありません
一定の間隔でイベント キューにコールバックを追加しますが、実行はあまり正確ではありません
function simpleTimeout(consoleTime) { console.timeEnd(consoleTime); } console.time("twoSecond"); setTimeout(simpleTimeout,2000,"twoSecond"); console.time("oneSecond"); setTimeout(simpleTimeout,1000,"oneSecond"); console.time("fiveSecond"); setTimeout(simpleTimeout,5000,"fiveSecond"); console.time("50MillSecond"); setTimeout(simpleTimeout,50,"50MillSecond");
上記のコードを実行した出力結果何度かでも同じですが違います。
"C:\Program Files (x86)\JetBrains\WebStorm 11.0.3\bin\runnerw.exe" F:\nodejs\node.exe timer.js 50MillSecond: 51ms oneSecond: 1000ms twoSecond: 2002ms fiveSecond: 5001ms Process finished with exit code 0
上記がこの記事の全内容です。Node.js で setTimeout と setInterval を使用する方法を学ぶのに役立つことを願っています。
Node.js で setTimeout と setInterval を素早くマスターする方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。