Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

timers

最終更新 Markdown で表示Agent セットアップ

node:timers API を使い、関数を後で実行するようにスケジュールします。

これには、遅延後に関数を呼ぶ setTimeout、繰り返し呼ぶ setInterval、イベントループの次のイテレーションで呼ぶ setImmediate が含まれます。

index.jsjs
import timers from "node:timers";

export default {
	async fetch() {
		console.log("first");
		const { promise: promise1, resolve: resolve1 } = Promise.withResolvers();
		const { promise: promise2, resolve: resolve2 } = Promise.withResolvers();
		timers.setTimeout(() => {
			console.log("last");
			resolve1();
		}, 10);

		timers.setTimeout(() => {
			console.log("next");
			resolve2();
		});

		await Promise.all([promise1, promise2]);

		return new Response("ok");
	},
};
index.tsts
import timers from "node:timers";

export default {
  async fetch(): Promise<Response> {
    console.log("first");
    const { promise: promise1, resolve: resolve1 } = Promise.withResolvers<void>();
    const { promise: promise2, resolve: resolve2 } = Promise.withResolvers<void>();
    timers.setTimeout(() => {
      console.log("last");
      resolve1();
    }, 10);

    timers.setTimeout(() => {
      console.log("next");
      resolve2();
    });

    await Promise.all([promise1, promise2]);

    return new Response("ok");
  }
} satisfies ExportedHandler<Env>;

node:timers API の全体は、Node.js の node:timers ドキュメント を参照してください。

役に立ちましたか?