モジュールタイマー
タイマー モジュールは、setTimeout()、setInterval()、clearInterval()、clearTimeout() などの時間関連の関数とオブジェクトを提供する組み込みモジュールです。
setInterval() 関数は、指定された時間ごとに関数を呼び出し、タイマー オブジェクトを返します。
1
2
3
4
5
6var timers = require('timers');
function callback() {
console.log('Hello, World!');
}
var intervalId = timers.setInterval(callback, 1000);
setTimeout() 関数は、指定された時間の経過後に関数を呼び出し、タイマー オブジェクトを返します。
1
2
3
4
5
6var timers = require('timers');
function callback() {
console.log('Hello, World!');
}
var timeoutId = timers.setTimeout(callback, 1000);
clearTimeout() 関数は、setTimeout() メソッドによって設定されたタイマーをキャンセルするために使用されます。提供する必要があるのは、setTimeout() で返されるタイマー識別子の値です。
1
2
3
4
5
6
7var timers = require('timers');
function callback() {
console.log('Hello, World!');
}
var timeoutId = timers.setTimeout(callback, 1000);
timers.clearTimeout(timeoutId);
clearInterval() 関数は、setInterval() メソッドによって設定されたタイマーをキャンセルするために使用されます。提供する必要があるのは、setInterval() で返されるタイマー識別子の値です。
1
2
3
4
5
6
7var timers = require('timers');
function callback() {
console.log('Hello, World!');
}
var intervalId = timers.setInterval(callback, 1000);
timers.clearInterval(intervalId);
setImmediate() 関数は、次のアイドル時間中にただちに関数を呼び出し、タイマー オブジェクトを返すために使用されます。
1
2
3
4
5
6var timers = require('timers');
function callback() {
console.log('Hello, World!');
}
var immediateId = timers.setImmediate(callback);
上記はタイマーモジュールが提供する一般的な関数やオブジェクトの例であり、これらの関数やオブジェクトを利用することで、タスクの遅延実行やスケジュールされたタスクの実行をアプリケーションに簡単に実装できます。
静的関数
setTimeout
指定した時間が経過した後に関数を呼び出す
1
2
3static Timer timers.setTimeout(Function callback,
Number timeout = 1,
...args);
呼び出しパラメータ:
- callback: 関数、コールバック関数を指定します
- timeout: 遅延時間をミリ秒単位で指定する数値。 2^31 を超える場合は、すぐに実行されます。
- args: ...、指定されたコールバックに渡される追加パラメータ (オプション)。
返される結果:
- Timer、タイマーオブジェクトを返します
clearTimeout
指定したタイマーをクリアする
1static timers.clearTimeout(Value t);
呼び出しパラメータ:
- t: 値、クリアするタイマーを指定します
setInterval
指定した間隔後に関数を呼び出す
1
2
3static Timer timers.setInterval(Function callback,
Number timeout,
...args);
呼び出しパラメータ:
- callback: 関数、コールバック関数を指定します
- timeout: 間隔時間をミリ秒単位で指定する数値。 2^31 を超える場合は、すぐに実行されます。
- args: ...、指定されたコールバックに渡される追加パラメータ (オプション)。
返される結果:
- Timer、タイマーオブジェクトを返します
clearInterval
指定したタイマーをクリアする
1static timers.clearInterval(Value t);
呼び出しパラメータ:
- t: 値、クリアするタイマーを指定します
setHrInterval
この関数は、指定された時間間隔ごとに呼び出されます。これは、実行中の JavaScript スクリプトの実行タイマーを積極的に中断する高精度タイマーです。
1
2
3static Timer timers.setHrInterval(Function callback,
Number timeout,
...args);
呼び出しパラメータ:
- callback: 関数、コールバック関数を指定します
- timeout: 間隔時間をミリ秒単位で指定する数値。 2^31 を超える場合は、すぐに実行されます。
- args: ...、指定されたコールバックに渡される追加パラメータ (オプション)。
返される結果:
- Timer、タイマーオブジェクトを返します
setHrInterval タイマーは実行中のコード実行コールバックを中断するため、コールバック関数内の他のモジュールに影響を与える可能性のあるデータを変更したり、コールバック内で非同期としてマークされた API 関数を呼び出したりしないでください。そうしないと、予測できない結果が発生します。例えば:
1
2
3
4
5
6
7
8
9
10var timers = require('timers');
var cnt = 0;
timers.setHrInterval(() => {
cnt++;
}, 100);
while (cnt < 10);
console.error("===============================> done");
このコードでは、コードの最適化時に JavaScript がループ中に cnt が変更されないと判断するため、cnt の変更によって 8 行目のループは終了しません。
clearHrInterval
指定したタイマーをクリアする
1static timers.clearHrInterval(Value t);
呼び出しパラメータ:
- t: 値、クリアするタイマーを指定します
setImmediate
次のアイドル時間中にコールバック関数をただちに実行します。
1
2static Timer timers.setImmediate(Function callback,
...args);
呼び出しパラメータ:
- callback: 関数、コールバック関数を指定します
- args: ...、指定されたコールバックに渡される追加パラメータ (オプション)。
返される結果:
- Timer、タイマーオブジェクトを返します
clearImmediate
指定したタイマーをクリアする
1static timers.clearImmediate(Value t);
呼び出しパラメータ:
- t: 値、クリアするタイマーを指定します
call
指定された関数を呼び出し、タイムアウトが経過すると関数を中断します。
1
2
3static Value timers.call(Function func,
Number timeout,
...args);
呼び出しパラメータ:
- func: 関数、実行する関数を指定します
- timeout: 数値、タイムアウト期間を指定します
- args: ...、指定されたコールバックに渡される追加パラメータ (オプション)。
返される結果:
- Value、関数の実行結果を返します。