ホームページ  >  記事  >  ウェブフロントエンド  >  Node.js_node.js での setTimeout と setInterval の使用法をすぐにマスターする

Node.js_node.js での setTimeout と setInterval の使用法をすぐにマスターする

WBOY
WBOYオリジナル
2016-05-16 15:09:561485ブラウズ

Node.js にも、js と同様に、イベント スケジューリングを実装するためのタイマー、タイムアウト タイマー、インターバル タイマー、タイムリー タイマー、および process.nextTick(callback) 関数があります。今日は、setTimeout と setInterval の使用方法を学びましょう。

1. setTimeout タイムアウト タイマー (GCD の after と同様)

node.js では、node.js 組み込みの setTimeout(callback, lateMillSeconds, [args]) メソッドを使用できます。 setTime() を呼び出すと、コールバック関数は遅延MillSeconds

の後に行われます。

.setTime() を実行するとタイマー オブジェクト 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 と同様に、タイマー オブジェクト ID を作成して返し、clearInterval( を通じてキャンセルする) 組み込みの setInterval(callback, lateMilliSecond, [args]) を使用します。 )。

/**
 * 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. イベントループからのタイマー参照をキャンセルします

イベント キューにタイマー コールバック関数しかない場合、それらを実行したくない場合は、setInterval および setTimeout によって返されるオブジェクトの unref() 関数を使用して、イベント ループを続行しないように通知できます。

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 を使用する方法を学ぶのに役立つことを願っています。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。