Sobes.tech
Junior

Асинхрон чакырууларды жазуу үчүн колдонгон инструменттериңизди атаңыз.

sobes.tech AI

AIден жооп

JavaScript ар кандай аспинхрон чакыруулар менен иштөө үчүн инструменттерди сунуштайт:

  • Callback функциялары: Классикалык ыкма, анда функция башка функциянын аргумент катары берилет жана асинхрондук операция аяктагандан кийин ишке ашырылат.

  • Promises (уәделер): Асинхрондук операциянын келечектеги мааниси же катады көрсөтүүчү объекттер. Алар асинхрондук чакырууларды чынжырлоо жана ката иштетүүнү жеңилдетет.

    // Promises колдонуу мисалы
    fetch('/api/data')
      .then(response => response.json()) // ийгиликтүү жоопту иштетүү
      .then(data => console.log(data)) // алынган маалыматтар менен иштөө
      .catch(error => console.error('Ката:', error)); // ката иштетүү
    
  • Async/await: Promises үстүндөгү синтаксистик шекер, асинхрондук кодду көбүрөөк окулушу үчүн жазууга мүмкүндүк берет, бул окуулушту жакшыртат.

    // Async/await колдонуу мисалы
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // fetch аяктагандан күтүү
        const data = await response.json(); // JSON парсинг күтүү
        console.log(data);
      } catch (error) {
        console.error('Ката:', error);
      }
    }
    fetchData();
    
  • XMLHttpRequest (XHR): Браузердеги HTTP суроо-талаптарды аткаруу үчүн негизги API. fetchке караганда төмөнкү деңгээлде жана көбүрөөк код талап кылынат.

    // XMLHttpRequest колдонуу мисалы
    const xhr = new XMLHttpRequest();
    xhr.open('GET', '/api/data', true); // асинхрондуу суроо
    xhr.onload = function() {
      if (xhr.status >= 200 && xhr.status < 300) {
        console.log(JSON.parse(xhr.responseText));
      } else {
        console.error('Ката:', xhr.statusText);
      }
    };
    xhr.onerror = function() {
      console.error('Тармак ката');
    };
    xhr.send();
    
  • Fetch API: Заманауи жана көбүрөөк ийкемдүү API HTTP суроо-талаптарды аткаруу үчүн, promisesке негизделген.

    // Fetch API колдонуу мисалы
    fetch('/api/data')
      .then(response => response.json())
      .then(data => console.log(data))
      .catch(error => console.error('Ката:', error));
    
  • HTTP суроо-талаптар үчүн китепканалар: Мисалы, axios (браузерлер жана Node.js үчүн) же jQuery.ajax(). Алар асинхрондук суроолорду аткарууну жөнөкөйлөтөт жана стандартташтырат.

    // Axios колдонуу мисалы
    axios.get('/api/data')
      .then(response => console.log(response.data))
      .catch(error => console.error('Ката:', error));
    

Инструмент тандоо иштин өзгөчөлүктөрүнө жана долбоордун контекстине жараша болот. Fetch жана async/await көбүнчө учурда заманбап жана сунушталат.