Anda seharusnya tidak hanya mencoba menjeda 5 detik dalam javascript. Tidak berfungsi seperti itu. Anda dapat menjadwalkan fungsi kode untuk menjalankan 5 detik dari sekarang, tetapi Anda harus memasukkan kode yang ingin Anda jalankan nanti ke dalam suatu fungsi dan sisa kode Anda setelah fungsi itu akan terus berjalan segera.
Sebagai contoh:
function stateChange(newState) {
setTimeout(function(){
if(newState == -1){alert('VIDEO HAS STOPPED');}
}, 5000);
}
Tetapi, jika Anda memiliki kode seperti ini:
stateChange(-1);
console.log("Hello");
The console.log()
pernyataan akan segera berjalan. Ini tidak akan menunggu sampai setelah batas waktu menyala dalam stateChange()
fungsi. Anda tidak bisa hanya menghentikan sementara eksekusi javascript untuk jumlah waktu yang telah ditentukan.
Sebaliknya, kode apa pun yang Anda ingin tunda harus berada di dalam setTimeout()
fungsi panggilan balik (atau dipanggil dari fungsi itu).
Jika Anda memang mencoba "berhenti" dengan mengulang, maka Anda pada dasarnya akan "menggantung" penerjemah Javascript untuk jangka waktu tertentu. Karena Javascript menjalankan kode Anda hanya dalam satu utas, ketika Anda mengulang, tidak ada lagi yang dapat dijalankan (tidak ada penangan acara lainnya yang dapat dipanggil). Jadi, pengulangan menunggu beberapa variabel untuk berubah tidak akan berfungsi karena tidak ada kode lain yang dapat dijalankan untuk mengubah variabel itu.