Programlama

JavaScript async ve await: cevabı beklemek

fetch ve json önüne await yaz. Hatayı try ve catch tutar.

Tüm dersler · JavaScript dersleri: sıfırdan öğren

Cevabı bekle

Sunucu 1-2 saniye gecikir. Beklemezsen sonuç undefined veya Promise olur. async fonksiyonun başında yazılır. await yalnız fetch ve json önüne konur ve sonraki satıra geçirmez.

async function numune() {
  const cavab = await fetch(url);
  const melumat = await cavab.json();
}

async ile soru gönder

Aynı sorgu şimdi fonksiyonun içindedir. await iki yerde durur: fetch ve json. Fonksiyon kendiliğinden çalışmaz, sonda adıyla çağrılır. Anahtar yine sayfaya yazılmaz.

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 ve catch

İnternet kesilebilir veya anahtar yanlış olabilir. Çalışması gereken kod try içine yazılır. Hata olursa program durmaz, catch çalışı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.");
  }
}

Sorular

await neden hata verir? Fonksiyonun başında async yoktur. İkisi birlikte çalışır.

Ekranda Promise neden görünür? cavab.json() önünde await yoktur. fetch önünde de olmalıdır.

Fonksiyon neden çalışmaz? Yazmak yetmez. Sonda aiSualGonder("sual") çağır.

.then() ile farkı nedir? async/await aynı işi alt alta yazar. Hata ayrı catch değil, try ve catch ile tutulur.

Yazar: Nibras Code