JS にはスリープ機能がなく、setTimeout()またはsetInterval()関数があります。
一時停止後に実行する必要があるコードをsetTimeout()
コールバックに移動できる場合は、次のようにすることができます。
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
ここで例を参照してください: http://jsfiddle.net/9LZQp/
これはスクリプトの実行を停止しませんsetTimeout()
が、非同期関数であるため、このコードは
console.log("HELLO");
setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
これをコンソールに出力します:
HELLO
DOG
THIS IS
( DOGはTHIS ISの前に表示されることに注意してください)
次のコードを使用して、短時間の睡眠をシミュレートできます。
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
ここで、1 秒間スリープしたい場合は、次のようにします。
sleep(1000);
例: http://jsfiddle.net/HrJku/1/
このコードにより、スクリプトがn ミリ秒間ビジー状態になることに注意してください。これにより、ページでの Javascript の実行が停止するだけでなく、ブラウザーの実装によっては、ページが完全に応答しなくなり、ブラウザー全体が応答しなくなる可能性があります。言い換えれば、これはほとんど常に間違ったことです。