JavaScript async və await: cavabı gözləmək
fetch və json qarşısına await yaz. Xətanı try və catch tutur.
Bütün dərslər · JavaScript dərsləri: sıfırdan öyrən
Cavabı gözlə
Server 1-2 saniyə gecikir. Gözləməsən nəticə undefined və ya Promise olur. async funksiyanın əvvəlində yazılır. await yalnız fetch və json qarşısına qoyulur və növbəti sətirə keçməyə qoymur.
async function numune() {
const cavab = await fetch(url);
const melumat = await cavab.json();
}async ilə sual göndər
Eyni sorğu indi funksiyanın içindədir. await hər iki yerdə durur: fetch və json. Funksiya özü işləmir, sonunda adı ilə çağırılır. Açar yenə də səhifəyə yazılmır.
const apiKey = "BURAYA_OZ_API_ACARINIZI_YAZIN";
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${apiKey}`;
async function aiSualGonder(sualMetni) {
const sorguMelumati = {
contents: [{ parts: [{ text: sualMetni }] }]
};
const cavab = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(sorguMelumati)
});
const melumat = await cavab.json();
const aiMetni = melumat.candidates[0].content.parts[0].text;
console.log(aiMetni);
}
aiSualGonder("JavaScript-də massiv nədir?");try və catch
İnternet kəsilə bilər və ya açar səhv ola bilər. try içinə işləməli kod yazılır. Xəta olsa proqram dayanmır, catch işə düşür.
async function tehlukesizSorgu(sual) {
try {
const cavab = await fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
contents: [{ parts: [{ text: sual }] }]
})
});
const melumat = await cavab.json();
console.log(melumat.candidates[0].content.parts[0].text);
} catch (xeta) {
console.log("Xəta baş verdi. İnterneti və açarı yoxla.");
}
}Suallar
await niyə xəta verir? Funksiyanın əvvəlində async yoxdur. İkisi birlikdə işləyir.
Ekranda Promise niyə görünür? cavab.json() qarşısında await yoxdur. fetch qarşısında da olmalıdır.
Funksiya niyə işləmir? Yazmaq kifayət etmir. Sonda aiSualGonder("sual") çağır.
.then() ilə fərqi nədir? async/await eyni işi alt-alta yazır. Xəta ayrıca catch deyil, try və catch ilə tutulur.