Javascript'te sadece 5 saniye duraklatmaya çalışmamalısınız. Bu şekilde çalışmaz. Kod işlevini şu andan itibaren 5 saniye çalışacak şekilde zamanlayabilirsiniz, ancak daha sonra çalıştırmak istediğiniz kodu bir işleve koymanız gerekir; bu işlevden sonra kodunuzun geri kalanı hemen çalışmaya devam eder.
Örneğin:
function stateChange(newState) {
setTimeout(function(){
if(newState == -1){alert('VIDEO HAS STOPPED');}
}, 5000);
}
Ancak, böyle bir kodunuz varsa:
stateChange(-1);
console.log("Hello");
console.log()
Deyimi hemen çalışır. Zaman aşımı stateChange()
fonksiyona gelene kadar beklemez . Javascript uygulamasını önceden belirlenmiş bir süre boyunca duraklatamazsınız.
Bunun yerine, gecikmeleri çalıştırmak istediğiniz kodlar setTimeout()
geri arama işlevinin içinde olmalıdır (veya bu işlevden çağrılmalıdır).
Dönerek "duraklatmayı" denediyseniz, temelde Javascript yorumlayıcısını bir süre "asarsınız". Javascript kodunuzu yalnızca tek bir iş parçacığında çalıştırdığından, döngü yaptığınızda başka hiçbir şey çalıştırılamaz (başka hiçbir olay işleyicisi çağrılamaz). Bu nedenle, bazı değişkenlerin değişmesini bekleyen döngü asla işe yaramaz çünkü bu değişkeni değiştirmek için başka bir kod çalıştırılamaz.