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) に渡すことでキャンセルできます。
1 2 3 4 5 |
|
1 2 3 |
|
clearTimeout(mytimeout); 行をコメントすると、myfunc() が実行されることがわかります。
1 2 3 4 |
|
2. setInterval インターバルタイマー (GCD のdispatch_source_t または NSTimer に似ています)
インターバルタイマーは、setTimeout と同様に、node.js に組み込まれています。 ,[args]) を使用してタイマー オブジェクト ID を作成して返し、clearInterval() を通じてキャンセルします。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
上記のコードは setInterval のコールバック関数 myfunc を作成するもので、setInterval は 1 秒ごとに実行され、そのコールバック関数はインターバル タイマーをキャンセルします。
1 2 3 4 5 6 7 |
|
3. イベントループからタイマー参照をキャンセルします
イベントキューにタイマーコールバック関数しかない場合、それらを実行したくない場合は、返されたオブジェクトの unref() 関数を使用できます。 setInterval と setTimeout で通知する イベントループは継続しません。
unref() を setTimeout と組み合わせて使用する場合、イベント ループを起動するために独立したタイマーを使用する必要があります。大量に使用するとパフォーマンスにも影響するため、使用は最小限に抑えてください。
4. setTimeout と setInterval の実行時間は正確ではありません
一定の間隔でイベント キューにコールバックを追加しますが、実行はあまり正確ではありません
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
|
上記のコードを実行した出力結果何度かでも同じですが違います。
1 2 3 4 5 6 7 |
|
上記がこの記事の全内容です。Node.js で setTimeout と setInterval を使用する方法を学ぶのに役立つことを願っています。
Node.js で setTimeout と setInterval を素早くマスターする方法に関するその他の関連記事については、PHP 中国語 Web サイトに注目してください。