JavaScriptでsleep (setTimeout + Promise)
[2024-01-28追記] Node.jsの場合、v15以降なら timersPromises.setTimeout でできます。
const { setTimeout } = require('timers/promises');
(async() => {
console.time();
await setTimeout(3000);
console.timeEnd();
// -> default: 3.004s
})();import { setTimeout } from 'timers/promises';それ以外の場合、Promise化した setTimeout() でsleepのようなことができます。普通に .then() で使ってもただの setTimeout() でしかないので、await をつけて呼びます。
/**
* sleepもどき
* @param {Number} ms ミリ秒
* @returns {Promise}
*/
const sleep = (ms) => new Promise(resolve => setTimeout(resolve, ms));
(async() => {
console.time();
await sleep(3000);
console.timeEnd();
// -> default: 3002.119140625 ms
})();const sleep = (ms: number): Promise<void> => new Promise(resolve => setTimeout(resolve, ms));
キリウ君が読まないノート