Sobes.tech
Junior

Сиз асинхрондук код менен иштөө үчүн кандай ыкмаларды билесиз?

sobes.tech AI

AIден жооп

  • Callback-функциялар: Башка функцияны башка функцияга аргумент катары берүү, ал асинхрондук операция аяктагандан кийин чакырылат. Алар "callback hell" түзүшү мүмкүн.
  • 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'); // Promis аткарылуусун күтүү
        if (!response.ok) {
          throw new Error(`HTTP ката! абал: ${response.status}`);
        }
        const data = await response.json(); // Promis аткарылуусун күтүү
        console.log(data);
      } catch (error) {
        console.error('Маалыматты алуу ката:', error); // Ката иштетүү
      }
    }
    fetchData();
    
  • Генераторлор (Generators): co китепканасы менен же кол менен асинхрондуулук менен иштөө үчүн колдонулушу мүмкүн, бирок async/await кеңири колдонулуп калды.

Негизги ыкмалардын салыштырылышы:

Ыкма Артыкчылыктары Кемчиликтери
Callbacks Баштапкы этапта жөнөкөй "Callback hell", ката иштетүү кыйынчылыгы
Promises Окууну жакшыртуу, ката иштетүү Ланцерлерде көп орун алат
Async/await Жогорку окумдуулук, синхрондук кодго окшоштуруу async/await колдоосу талап кылынат