Node.js 指定した時間が経過したら関数を実行する。
環境
OS: Windows10
Node.js: v6.9.4
setTimeout <時間が経過したら関数を実行>
- setTimeOutの公式ドキュメント
- 指定した時間が経過したら指定した関数を実行する。
// test0.js setTimeout(function() { console.log('good mornming!'); }, 1000);
test0.jsの出力結果
good morning!
実行から1000ミリ秒後に 'good morning!' と表示される。
setTimeout(callback, delay[, ...args])
引数
- callback <Function>
- 時間が経過したときに呼び出す関数
- delay <number>
- callbackを呼び出す前に待機する時間(ms)
- ...args <any>
- callbackを呼び出すときに渡すオプションの引数
処理
- delayで指定したミリ秒後に1度callbackの関数を呼び出す。
- 正確な時間(ms)ではない。できるだけ近い時間(ms)になっている
- delay > 2147483647 or delay < 1 の時はdelayは1が設定される。
- callbackが関数ではないときは TypeErrorがスローされる。
2つsetTimeout()を書いてみる
// test1.js setTimeout(function() { console.log('good mornming!'); }, 1000); setTimeout(function() { console.log('hello!'); }, 500);
test1.jsの出力結果
hello! good morning!
Node.jsは非同期処理のため、 'hello!' が先に表示されてしまう。
順番に上から処理をしたい場合は asyncモジュールで定義されている関数を使うと良い。