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'); // Чаканне выканання promise if (!response.ok) { throw new Error(`HTTP памылка! статус: ${response.status}`); } const data = await response.json(); // Чаканне выканання promise console.log(data); } catch (error) { console.error('Памылка пры загрузцы дадзеных:', error); // Апрацоўка памылкі } } fetchData(); - Генератары (Generators): Могуць быць выкарыстаны для працы з асінхроннасцю ў спалучэнні з бібліятэкай
coабо ўручную, хацяasync/awaitстаў больш распаўсюджаным падыходам.
Параўнанне асноўных падыходаў:
| Спосаб | Перавагі | Недахопы |
|---|---|---|
| Callbacks | Просты на пачатковым этапе | "Callback hell", складанасць апрацоўкі памылак |
| Promises | Палепшаная чытэльнасць, апрацоўка памылак | Могуць быць аб'ёмнымі пры ланцужках аперацый |
| Async/await | Вышэйшая чытэльнасць, падобнасць з сінхронным кодам | Патрабуе падтрымкі async/await асяроддзя |