Asenkron JavaScript

"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);

Kişisel olarak deneyin

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 !!";
}

Kişisel olarak deneyin

Ü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;
}

Kişisel olarak deneyin

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();
}

Kişisel olarak deneyin

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);

Kişisel olarak deneyin

Ü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>