Saya memiliki kode JavaScript yang saya butuhkan untuk menambah tidur/tunggu fungsi untuk. Kode saya berjalan sudah dalam fungsi, misalnya:
function myFunction(time)
{
alert('time starts now');
//code to make the program wait before continuing
alert('time is up')
}
Aku telah mendengar bahwa solusi yang mungkin dapat mencakup
setTimeout
tapi saya tidak yakin bagaimana menggunakannya dalam kasus ini.
Saya dapat't menggunakan PHP sebagai server saya tidak mendukung hal itu, meskipun menggunakan jQuery akan baik-baik saja.
JS tidak memiliki fungsi tidur, memiliki setTimeout() atau setInterval() fungsi.
Jika anda dapat memindahkan kode yang anda butuhkan untuk menjalankan setelah jeda ke setTimeout()
callback, anda dapat melakukan sesuatu seperti ini:
//code before the pause
setTimeout(function(){
//do what you need here
}, 2000);
lihat contoh berikut ini :
Ini won't menghentikan eksekusi dari script anda, tapi selama setTimeout()
adalah asynchronous fungsi, kode ini
console.log("HELLO");
setTimeout(function(){
console.log("THIS IS");
}, 2000);
console.log("DOG");
akan cetak ini di console:
HELLO
DOG
THIS IS
(perhatikan bahwa ANJING dicetak sebelum INI ADALAH)
Anda dapat menggunakan kode berikut untuk mensimulasikan tidur untuk jangka waktu yang singkat:
function sleep(milliseconds) {
var start = new Date().getTime();
for (var i = 0; i < 1e7; i++) {
if ((new Date().getTime() - start) > milliseconds){
break;
}
}
}
sekarang, jika anda ingin tidur selama 1 detik, hanya menggunakan:
sleep(1000);
contoh: http://jsfiddle.net/HrJku/1/
harap dicatat bahwa kode ini akan membuat naskah anda sibuk selama n milidetik. Hal ini tidak hanya akan menghentikan eksekusi Javascript pada halaman anda, tetapi tergantung pada browser implementasi, mungkin dapat membuat halaman benar-benar tidak responsif, dan mungkin membuat seluruh browser yang tidak responsif. Di lain kata-kata ini hampir selalu hal yang salah untuk dilakukan.