Asenkron JavaScript
- Önceki Sayfa JS Geri Bildirim
- Sonraki Sayfa JS Promise
"Daha sonra tamamlanacak!"
Diğer fonksiyonlarla paralel olarak çalışan fonksiyonlar asenkron (asenkron) olarak adlandırılır
JavaScript setTimeout() bir örnek
Asenkron JavaScript
Önceki bölümde kullanılan örnekler büyük ölçüde basitleştirilmiştir.
Bu, geri çağrı fonksiyonunun gramerini göstermek içindir:
Örnek
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function myCalculator(num1, num2, myCallback) { let sum = num1 + num2; myCallback(sum); } myCalculator(5, 5, myDisplayer);
Yukarıdaki örnekte,myDisplayer
fonksiyonun adıdır.
Bu, bir parametre olarak geçirilir myCalculator()
。
Gerçek dünyada, geri çağrılar genellikle asenkron fonksiyonlarla birlikte kullanılır.
Bir örnek JavaScript setTimeout()
。
Zaman aşımını bekleyin
JavaScript fonksiyonlarını kullanırken setTimeout()
Bu durumda, zaman aşımında çalıştırılacak geri çağrı fonksiyonunu belirtebilirsiniz:
Örnek
setTimeout(myFunction, 3000); function myFunction() { document.getElementById("demo").innerHTML = "Ben seni seviyorum !!"; }
Üstteki örnektemyFunction
geri çağrı olarak kullanılır.
fonksiyon (fonksiyon adı) parametre olarak iletilir setTimeout()
。
3000, zaman aşımı öncesi milisaniyedir, bu yüzden 3 saniye sonra çağrılır myFunction()
。
Bir fonksiyonu parametre olarak geçtiğinizde, parantez kullanmayın.
Doğru: setTimeout(myFunction, 3000);
Hata: setTimeout(myFunction(), 3000);
Bir fonksiyonun adını bir diğer fonksiyona parametre olarak geçmemişseniz, her zaman tüm fonksiyonu geçebilirsiniz:
Örnek
setTimeout(function() { myFunction("Ben seni seviyorum !!!"); }, 3000); function myFunction(value) {}} document.getElementById("demo").innerHTML = value; }
Yukarıdaki örnekte,function(){ myFunction("Ben seni seviyorum !!!"); }
geri çağrı olarak kullanılır. Tam bir fonksiyondur. Tam bir fonksiyon, setTimeout()'ye parametre olarak geçirilir.
3000, zaman aşımı öncesi milisaniyedir, bu yüzden 3 saniye sonra çağrılır myFunction()
。
Bekleme süresi:
JavaScript fonksiyonlarını kullanırken setInterval()
saniyede, her aralıkta yürütülecek geri çağrı fonksiyonunu belirtebilirsiniz:
Örnek
setInterval(myFunction, 1000); function myFunction() { let d = new Date(); document.getElementById("demo").innerHTML= d.getHours() + ":" + d.getMinutes() + ":" + d.getSeconds(); }
Yukarıdaki örnekte,myFunction
geri bildirim olarak kullanılır.
fonksiyon (fonksiyon adı) parametre olarak iletilir setInterval()
。
1000, aradaki sürelerin milisaniyedir, bu yüzden myFunction()
Her saniye bir çağrılır.
Dosya bekleme
Dış kaynakları (örneğin, betikler veya dosyalar) yüklemek için fonksiyonlar oluşturursanız, bu içerikler tamamen yüklendikten önce bu içerikler kullanılamaz.
Bu, geri çağrı kullanmanın en iyi zamanıdır.
Bu örnek, bir HTML dosyasını yükler (mycar.html
), ve HTML dosyası tamamen yüklendikten sonra bu HTML dosyasını web sayfasında göster:
Dosya bekleme:
function myDisplayer(some) { document.getElementById("demo").innerHTML = some; } function getFile(myCallback) { let req = new XMLHttpRequest(); req.open('GET', "mycar.html"); req.onload = function() { if (req.status == 200) { myCallback(this.responseText); } else { myCallback("Hata: " + req.status); } } req.send(); } getFile(myDisplayer);
Üstteki örnektemyDisplayer
geri bildirim olarak kullanılır.
fonksiyon (fonksiyon adı) parametre olarak iletilir getFile()
。
Aşağıda mycar.html
kopyası:
mycar.html
<img src="img_car.jpg" alt="Nice car" style="width:100%"> <p>A car is a wheeled, self-powered motor vehicle used for transportation.</p> <p>Terimin çoğu tanımı, araçların ana olarak yollarda çalışmak için tasarlandığını, bir ila sekiz kişilik oturma kapasitesine sahip olduğunu ve genellikle dört tekerlekli olduğunu belirtir.</p> <p>(Wikipedia)</p>
- Önceki Sayfa JS Geri Bildirim
- Sonraki Sayfa JS Promise