Node.js v25.0.0 ドキュメンテーション
- Node.js v25.0.0
- 目次
-
索引
- アサーションテスト
- 非同期コンテキストの追跡
- Async hooks
- Buffer
- C++アドオン
- Node-API を使用した C/C++ アドオン
- C++ embedder API
- 子プロセス
- Cluster
- コマンドラインオプション
- Console
- Crypto
- Debugger
- 非推奨のAPI
- Diagnostics Channel
- DNS
- Domain
- 環境変数
- エラー
- Events
- ファイルシステム
- Globals
- HTTP
- HTTP/2
- HTTPS
- Inspector
- 国際化
- モジュール: CommonJS モジュール
- モジュール: ECMAScript モジュール
- モジュール:
node:moduleAPI - モジュール: パッケージ
- モジュール: TypeScript
- Net
- OS
- Path
- Performance hooks
- パーミッション
- Process
- Punycode
- クエリストリング
- Readline
- REPL
- レポート
- 単一実行可能ファイルアプリケーション
- SQLite
- Stream
- String decoder
- テストランナー
- タイマー
- TLS/SSL
- トレースイベント
- TTY
- UDP/datagram
- URL
- ユーティリティ
- V8
- VM
- WASI
- Web Crypto API
- Web Streams API
- ワーカースレッド
- Zlib
- 他のバージョン
- オプション
タイマー#
ソースコード: lib/timers.js
timer モジュールは、将来のある時点で呼び出される関数をスケジュールするためのグローバル API を公開します。タイマー関数はグローバルであるため、API を使用するために require('node:timers') を呼び出す必要はありません。
Node.js 内のタイマー関数は、Web ブラウザが提供するタイマー API と同様の API を実装していますが、Node.js のイベントループを中心に構築された異なる内部実装を使用しています。
クラス: Immediate#
このオブジェクトは内部で作成され、setImmediate() から返されます。スケジュールされたアクションをキャンセルするために clearImmediate() に渡すことができます。
デフォルトでは、immediate がスケジュールされると、それがアクティブである限り Node.js のイベントループは実行を継続します。setImmediate() によって返される Immediate オブジェクトは、このデフォルトの動作を制御するために使用できる immediate.ref() と immediate.unref() の両方の関数をエクスポートします。
immediate.ref()#
- 戻り値: <Immediate>
immediateへの参照
呼び出されると、Immediate がアクティブである限り、Node.js のイベントループが終了しないように要求します。immediate.ref() を複数回呼び出しても効果はありません。
デフォルトでは、すべての Immediate オブジェクトは「参照」(ref'ed) されているため、以前に immediate.unref() が呼び出されていない限り、通常は immediate.ref() を呼び出す必要はありません。
immediate.unref()#
- 戻り値: <Immediate>
immediateへの参照
呼び出されると、アクティブな Immediate オブジェクトは Node.js のイベントループがアクティブであり続けることを要求しなくなります。イベントループを実行し続ける他のアクティビティがない場合、Immediate オブジェクトのコールバックが呼び出される前にプロセスが終了することがあります。immediate.unref() を複数回呼び出しても効果はありません。
immediate[Symbol.dispose]()#
immediate をキャンセルします。これは clearImmediate() を呼び出すことと似ています。
クラス: Timeout#
このオブジェクトは内部で作成され、setTimeout() および setInterval() から返されます。スケジュールされたアクションをキャンセルするために clearTimeout() または clearInterval() に渡すことができます。
デフォルトでは、setTimeout() または setInterval() を使用してタイマーがスケジュールされると、タイマーがアクティブである限り Node.js のイベントループは実行を継続します。これらの関数によって返される各 Timeout オブジェクトは、このデフォルトの動作を制御するために使用できる timeout.ref() と timeout.unref() の両方の関数をエクスポートします。
timeout.close()#
clearTimeout() を使用してください。- 戻り値: <Timeout>
timeoutへの参照
タイムアウトをキャンセルします。
timeout.ref()#
- 戻り値: <Timeout>
timeoutへの参照
呼び出されると、Timeout がアクティブである限り、Node.js のイベントループが終了しないように要求します。timeout.ref() を複数回呼び出しても効果はありません。
デフォルトでは、すべての Timeout オブジェクトは「参照」(ref'ed) されているため、以前に timeout.unref() が呼び出されていない限り、通常は timeout.ref() を呼び出す必要はありません。
timeout.refresh()#
- 戻り値: <Timeout>
timeoutへの参照
タイマーの開始時刻を現在時刻に設定し、以前に指定された期間を現在時刻に合わせて調整して、コールバックを呼び出すようにタイマーを再スケジュールします。これは、新しい JavaScript オブジェクトを割り当てることなくタイマーを更新するのに役立ちます。
すでにコールバックを呼び出したタイマーでこれを使用すると、タイマーが再アクティブ化されます。
timeout.unref()#
- 戻り値: <Timeout>
timeoutへの参照
呼び出されると、アクティブな Timeout オブジェクトは Node.js のイベントループがアクティブであり続けることを要求しなくなります。イベントループを実行し続ける他のアクティビティがない場合、Timeout オブジェクトのコールバックが呼び出される前にプロセスが終了することがあります。timeout.unref() を複数回呼び出しても効果はありません。
timeout[Symbol.toPrimitive]()#
- 戻り値: <integer> この
timeoutを参照するために使用できる数値
Timeout をプリミティブに変換します。このプリミティブは Timeout をクリアするために使用できます。プリミティブは、タイムアウトが作成されたのと同じスレッドでのみ使用できます。したがって、worker_threads をまたいで使用するには、まず正しいスレッドに渡す必要があります。これにより、ブラウザの setTimeout() および setInterval() 実装との互換性が向上します。
timeout[Symbol.dispose]()#
タイムアウトをキャンセルします。
タイマーのスケジューリング#
Node.js のタイマーは、一定期間後に指定された関数を呼び出す内部的な仕組みです。タイマーの関数がいつ呼び出されるかは、タイマーを作成するために使用されたメソッドや、Node.js のイベントループが実行している他の作業によって異なります。
setImmediate(callback[, ...args])#
callback<Function> この Node.js イベントループのターンの最後に呼び出す関数...args<any>callbackが呼び出されるときに渡すオプションの引数。- 戻り値: <Immediate>
clearImmediate()で使用するため
I/O イベントのコールバックの後に、callback の「即時」実行をスケジュールします。
setImmediate() の呼び出しが複数回行われた場合、callback 関数は作成された順序で実行キューに入れられます。コールバックキュー全体は、イベントループの各イテレーションで処理されます。実行中のコールバック内から即時タイマーがキューに入れられた場合、そのタイマーは次のイベントループのイテレーションまでトリガーされません。
callback が関数でない場合、TypeError がスローされます。
このメソッドには、timersPromises.setImmediate() を使用して利用できるプロミス用のカスタムバリアントがあります。
setInterval(callback[, delay[, ...args]])#
callback<Function> タイマーが経過したときに呼び出す関数。delay<number>callbackを呼び出す前に待機するミリ秒数。デフォルト:1。...args<any>callbackが呼び出されるときに渡すオプションの引数。- 戻り値: <Timeout>
clearInterval()で使用するため
delay ミリ秒ごとに callback の繰り返し実行をスケジュールします。
delay が 2147483647 より大きいか 1 未満、または NaN の場合、delay は 1 に設定されます。整数でない遅延は整数に切り捨てられます。
callback が関数でない場合、TypeError がスローされます。
このメソッドには、timersPromises.setInterval() を使用して利用できるプロミス用のカスタムバリアントがあります。
setTimeout(callback[, delay[, ...args]])#
callback<Function> タイマーが経過したときに呼び出す関数。delay<number>callbackを呼び出す前に待機するミリ秒数。デフォルト:1。...args<any>callbackが呼び出されるときに渡すオプションの引数。- 戻り値: <Timeout>
clearTimeout()で使用するため
delay ミリ秒後に 1 回限りの callback の実行をスケジュールします。
callback は、正確に delay ミリ秒で呼び出されるとは限りません。Node.js は、コールバックがいつ発生するかの正確なタイミングやその順序について保証しません。コールバックは、指定された時間にできるだけ近いタイミングで呼び出されます。
delay が 2147483647 より大きいか 1 未満、または NaN の場合、delay は 1 に設定されます。整数でない遅延は整数に切り捨てられます。
callback が関数でない場合、TypeError がスローされます。
このメソッドには、timersPromises.setTimeout() を使用して利用できるプロミス用のカスタムバリアントがあります。
タイマーのキャンセル#
setImmediate()、setInterval()、および setTimeout() メソッドは、それぞれスケジュールされたタイマーを表すオブジェクトを返します。これらは、タイマーをキャンセルしてトリガーされるのを防ぐために使用できます。
setImmediate() と setTimeout() のプロミス化されたバリアントでは、AbortController を使用してタイマーをキャンセルできます。キャンセルされると、返された Promises は 'AbortError' でリジェクトされます。
setImmediate() の場合
import { setImmediate as setImmediatePromise } from 'node:timers/promises';
const ac = new AbortController();
const signal = ac.signal;
// We do not `await` the promise so `ac.abort()` is called concurrently.
setImmediatePromise('foobar', { signal })
.then(console.log)
.catch((err) => {
if (err.name === 'AbortError')
console.error('The immediate was aborted');
});
ac.abort();const { setImmediate: setImmediatePromise } = require('node:timers/promises');
const ac = new AbortController();
const signal = ac.signal;
setImmediatePromise('foobar', { signal })
.then(console.log)
.catch((err) => {
if (err.name === 'AbortError')
console.error('The immediate was aborted');
});
ac.abort();
setTimeout() の場合
import { setTimeout as setTimeoutPromise } from 'node:timers/promises';
const ac = new AbortController();
const signal = ac.signal;
// We do not `await` the promise so `ac.abort()` is called concurrently.
setTimeoutPromise(1000, 'foobar', { signal })
.then(console.log)
.catch((err) => {
if (err.name === 'AbortError')
console.error('The timeout was aborted');
});
ac.abort();const { setTimeout: setTimeoutPromise } = require('node:timers/promises');
const ac = new AbortController();
const signal = ac.signal;
setTimeoutPromise(1000, 'foobar', { signal })
.then(console.log)
.catch((err) => {
if (err.name === 'AbortError')
console.error('The timeout was aborted');
});
ac.abort();
clearImmediate(immediate)#
immediate<Immediate>setImmediate()によって返されたImmediateオブジェクト。
setImmediate() によって作成された Immediate オブジェクトをキャンセルします。
clearInterval(timeout)#
timeout<Timeout> | <string> | <number>setInterval()によって返されたTimeoutオブジェクト、または文字列か数値としてのTimeoutオブジェクトのプリミティブ。
setInterval() によって作成された Timeout オブジェクトをキャンセルします。
clearTimeout(timeout)#
timeout<Timeout> | <string> | <number>setTimeout()によって返されたTimeoutオブジェクト、または文字列か数値としてのTimeoutオブジェクトのプリミティブ。
setTimeout() によって作成された Timeout オブジェクトをキャンセルします。
Timers Promises API#
timers/promises API は、Promise オブジェクトを返す代替のタイマー関数セットを提供します。この API は require('node:timers/promises') を介してアクセスできます。
import {
setTimeout,
setImmediate,
setInterval,
} from 'node:timers/promises';const {
setTimeout,
setImmediate,
setInterval,
} = require('node:timers/promises');
timersPromises.setTimeout([delay[, value[, options]]])#
delay<number> プロミスを履行する前に待機するミリ秒数。デフォルト:1。value<any> プロミスが履行されるときの値。options<Object>ref<boolean>falseに設定すると、スケジュールされたTimeoutが Node.js のイベントループをアクティブに保つ必要がないことを示します。デフォルト:true。signal<AbortSignal> スケジュールされたTimeoutをキャンセルするために使用できるオプションのAbortSignal。
import {
setTimeout,
} from 'node:timers/promises';
const res = await setTimeout(100, 'result');
console.log(res); // Prints 'result'const {
setTimeout,
} = require('node:timers/promises');
setTimeout(100, 'result').then((res) => {
console.log(res); // Prints 'result'
});
timersPromises.setImmediate([value[, options]])#
value<any> プロミスが履行されるときの値。options<Object>ref<boolean>falseに設定すると、スケジュールされたImmediateが Node.js のイベントループをアクティブに保つ必要がないことを示します。デフォルト:true。signal<AbortSignal> スケジュールされたImmediateをキャンセルするために使用できるオプションのAbortSignal。
import {
setImmediate,
} from 'node:timers/promises';
const res = await setImmediate('result');
console.log(res); // Prints 'result'const {
setImmediate,
} = require('node:timers/promises');
setImmediate('result').then((res) => {
console.log(res); // Prints 'result'
});
timersPromises.setInterval([delay[, value[, options]]])#
delay ミリ秒の間隔で値を生成する非同期イテレータを返します。ref が true の場合、イベントループを維持するために非同期イテレータの next() を明示的または暗黙的に呼び出す必要があります。
delay<number> イテレーション間の待機ミリ秒数。デフォルト:1。value<any> イテレータが返す値。options<Object>ref<boolean>falseに設定すると、イテレーション間のスケジュールされたTimeoutが Node.js のイベントループをアクティブに保つ必要がないことを示します。デフォルト:true。signal<AbortSignal> 操作間のスケジュールされたTimeoutをキャンセルするために使用できるオプションのAbortSignal。
import {
setInterval,
} from 'node:timers/promises';
const interval = 100;
for await (const startTime of setInterval(interval, Date.now())) {
const now = Date.now();
console.log(now);
if ((now - startTime) > 1000)
break;
}
console.log(Date.now());const {
setInterval,
} = require('node:timers/promises');
const interval = 100;
(async function() {
for await (const startTime of setInterval(interval, Date.now())) {
const now = Date.now();
console.log(now);
if ((now - startTime) > 1000)
break;
}
console.log(Date.now());
})();
timersPromises.scheduler.wait(delay[, options])#
delay<number> プロミスを解決する前に待機するミリ秒数。options<Object>ref<boolean>falseに設定すると、スケジュールされたTimeoutが Node.js のイベントループをアクティブに保つ必要がないことを示します。デフォルト:true。signal<AbortSignal> 待機をキャンセルするために使用できるオプションのAbortSignal。
- 戻り値: <Promise>
標準の Web プラットフォーム API として開発されている Scheduling APIs ドラフト仕様によって定義された実験的な API です。
timersPromises.scheduler.wait(delay, options) を呼び出すことは、timersPromises.setTimeout(delay, undefined, options) を呼び出すことと等価です。
import { scheduler } from 'node:timers/promises';
await scheduler.wait(1000); // Wait one second before continuing
timersPromises.scheduler.yield()#
- 戻り値: <Promise>
標準の Web プラットフォーム API として開発されている Scheduling APIs ドラフト仕様によって定義された実験的な API です。
timersPromises.scheduler.yield() を呼び出すことは、引数なしで timersPromises.setImmediate() を呼び出すことと等価です。