JavaScript Zaman uyumsuz
"async ve wait, sözlerin yazılmasını kolaylaştırır"
zaman uyumsuz bir işlevin bir Söz vermesini sağlar
wait bir fonksiyonun bir Promise için beklemesini sağlar
zaman uyumsuz sözdizimi
Bir işlevden önceki anahtar sözcük async
, işlevin bir söz vermesini sağlar:
Örnek
async function myFunction() {
return "Hello";
}
Aynıdır:
function myFunction() {
return Promise.resolve("Hello");
}
Sözü nasıl kullanacağınız aşağıda açıklanmıştır:
myFunction().then(
function(value) { /* code if successful */ },
function(error) { /* code if some error */ }
);
Örnek
async function myFunction() {
return "Hello";
}
myFunction().then(
function(value) {myDisplayer(value);},
function(error) {myDisplayer(error);}
);
Veya daha basit, normal bir değer beklediğiniz için (normal bir yanıt, bir hata değil):
Örnek
async function myFunction() {
return "Hello";
}
myFunction().then(
function(value) {myDisplayer(value);}
);
Sözdizimi Bekliyoruz
Bir işlevden önceki anahtar sözcük await
, işlevin bir söz beklemesini sağlar:
let value = await promise;
Anahtar await
kelime sadece bir
async
fonksiyon içinde kullanılabilir.
Örnek
Yavaş yavaş gidelim ve kullanmayı öğrenelim.
Temel Sözdizimi
async function myDisplay() {
let myPromise = new Promise(function(resolve, reject) {
resolve("I love You !!");
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
İki argüman (çözme ve reddetme) JavaScript tarafından önceden tanımlanmıştır.
Onları yaratmayacağız, ancak yürütücü işlevi hazır olduğunda bunlardan birini çağıracağız.
Çoğu zaman bir reddetme işlevine ihtiyacımız olmayacak.
Reddedilmemiş örnek
async function myDisplay() {
let myPromise = new Promise(function(resolve) {
resolve("I love You !!");
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
Zaman Aşımı Beklemek
async function myDisplay() {
let myPromise = new Promise(function(resolve) {
setTimeout(function() {resolve("I love You !!");}, 3000);
});
document.getElementById("demo").innerHTML = await myPromise;
}
myDisplay();
Dosya Beklemek
async function getFile() {
let myPromise = new Promise(function(resolve) {
let req = new XMLHttpRequest();
req.open('GET', "mycar.html");
req.onload = function() {
if (req.status == 200) {
resolve(req.response);
} else {
resolve("File not Found");
}
};
req.send();
});
document.getElementById("demo").innerHTML = await myPromise;
}
getFile();
Tarayıcı Desteği
ECMAScript 2017, JavaScript anahtar sözcüklerini tanıttı
async
ve await
.
Aşağıdaki tablo, her ikisi için de tam desteği olan ilk tarayıcı sürümünü tanımlar:
Chrome 55 | Edge 15 | Firefox 52 | Safari 11 | Opera 42 |
Dec, 2016 | Apr, 2017 | Mar, 2017 | Sep, 2017 | Dec, 2016 |