Middle
Чаро сохтори async/await ворид карда шуд ва чӣ гуна он бо коди асинхронӣ беҳтар мекунад?
sobes.tech AI
Ҷавоб аз AI
Async/await даромад шудааст, то навиштани коди асинхронро содда кунад, онро ба назар барин ва нигоҳдории онро нисбат ба callbacks ё promises анъанавӣ беҳтар гардонад.
Чӣ гуна беҳтар мекунад:
- Дидгоҳ: Код бо
async/awaitба назар мерасад, ки ҳамчун коди синхронӣ, хаттӣ ба хаттӣ, ки фаҳмидани онро хеле осонтар мекунад. - Идораи хатоҳо: Имкон медиҳад, ки структураҳои стандартӣ, монанди try/catch, барои идораи хатоҳо дар коди асинхронӣ истифода шаванд, баръакс аз
.catch()дар promises. - Дебаг: нуқтаҳои қатъ (breakpoints) ҳамон тавр кор мекунанд, ки дар коди синхронӣ, ки раванди дебагро осон мекунад.
- Камтар "callback hell": Масъалаи callback-ҳои дарундаро бартараф мекунад, ки ба коди нолозим оварда мерасонад.
Масалан:
Коди бо promises:
// Масалан бо promises
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => {
console.log(data);
})
.catch(error => {
console.error('Хатои дар гирифтани маълумот:', error);
});
Ҳамон код бо async/await:
// Масалан бо async/await
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error('Хатои дар гирифтани маълумот:', error);
}
}
fetchData();
Тарзи async/await асос ёфтааст ба promises ва як шакли синтаксистӣ барои кор бо онҳо мебошад. Функсияи бо async нишон дода шуда ҳамеша promises-ро бармегардонад. Оператор await танҳо дар дохили функсияҳои async истифода мешавад ва интизор мешавад, ки promises ҳал шавад, арзиши ҳалшудаи онро бармегардонад ё истисноро дар ҳолати хато бармеангезад.