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

高洛峰
リリース: 2017-02-08 15:54:26
オリジナル
1238 人が閲覧しました

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 サイトに注目してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!