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 колдоосу талап кылынат |