JavaScript | |

JavaScriptでsleep (setTimeout + Promise)

毎回過去のソースからコピペしてる

/**
 * sleepもどき
 * @param {Number} ms ミリ秒
 * @returns {Promise}
 */
const sleep = (ms) => new Promise(resolve => { setTimeout(resolve, ms); });
TypeScript
const sleep = (ms: number): Promise<void> => new Promise(resolve => { setTimeout(resolve, ms); });

ようするにPromise化した setTimeout() です。

普通に .then() で使ってもただの setTimeout() でしかないので、await をつけて呼びます。

使い方
// ※asyncファンクションの中でしかawaitは使えません
(async() => {
	console.log('開始', new Date().getTime());
	await sleep(3000);  // 3000ミリ秒
	console.log('終了', new Date().getTime());
})();
実行結果 (例)
開始 1575708743794
終了 1575708746795