Sobes.tech
Junior

Asinxron chaqiriqlar yozish uchun ishlatgan vositalaringizni nomlang.

sobes.tech AI

AIdan javob

JavaScript asinxron chaqiruvlar bilan ishlash uchun turli vositalar taklif qiladi:

  • Callback funksiyalar: Klassik yondashuv, bu yerda funksiya boshqa funksiyaga argument sifatida beriladi va asinxron operatsiya tugagach bajariladi.

  • Promises: Kelajakdagi qiymat yoki xatoni ifodalaydigan obyektlar. Asinxron chaqiruvlar zanjirini soddalashtiradi va xatoliklarni boshqarishni osonlashtiradi.

    // Promisesdan foydalanish misoli
    fetch('/api/data')
      .then(response => response.json()) // Muvaffaqiyatli javobni boshqarish
      .then(data => console.log(data)) // Olingan ma'lumotlar bilan ishlash
      .catch(error => console.error('Xato:', error)); // Xatoliklarni boshqarish
    
  • Async/await: Promises ustidagi sintaktik shakar, bu yordamida asinxron kodni ko'proq sinxron uslubda yozish mumkin, bu esa o'qish osonligini oshiradi.

    // Async/awaitdan foydalanish misoli
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // fetch tugashini kutish
        const data = await response.json(); // JSON parsingni kutish
        console.log(data);
      } catch (error) {
        console.error('Xato:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Brauzerda HTTP so'rovlarini bajarish uchun asosiy API. fetch ga nisbatan pastroq darajadagi va ko'proq kod talab qiladi.

    // XMLHttpRequestdan foydalanish misoli
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // Asinxron so'rov
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Xato:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Tarmoq xatosi');
    };
    xhr.send();
    
  • Fetch API: Zamonaviy va ko'proq moslashuvchan API, promiselarga asoslangan.

    // Fetch APIdan foydalanish misoli
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Xato:', error));
    
  • HTTP so'rovlar bilan ishlash uchun kutubxonalar: Masalan, axios (brauzer va Node.js uchun) yoki jQuery.ajax(). Ular asinxron so'rovlarni soddalashtiradi va standartlashtiradi.

    // Axiosdan foydalanish misoli
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Xato:', error));
    

Vositani tanlash vazifa xususiyatlariga va loyiha kontekstiga bog'liq. Fetch va async/await hozirgi vaqtda zamonaviy va tavsiya etilgan yondashuvlardir.