Middle
Ինչու է ներդրվել async/await կառուցվածքը և ինչպես է այն բարելավում ասինխրոնային կոդի աշխատանքը?
sobes.tech AI
Պատասխան AI-ից
Async/await-ը ներդրվել է՝ պարզեցնելու ասինխրոնային կոդի գրառումը, այն դարձնելով ավելի ընթերցանելի և պահպանելի՝ համեմատած ավանդական callback-ների կամ 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-ի լուծմանը՝ վերադարձնելով նրա լուծված արժեքը կամ գեներացնելով արտահայտություն սխալի դեպքում։