Junior — Middle
Ի՞նչ տարբերություն կա async/await և Promise կառուցվածքների միջև JavaScript-ում ասինխրոնային կոդով աշխատելիս։
sobes.tech AI
Պատասխան AI-ից
Promise-ը օբյեկտ է, որը ներկայացնում է ասինխրոն գործողության արդյունքը, որը կարող է լինել կատարված կամ մերժված ապագայում։ Այն թույլ է տալիս գրանցել մշակողներ then() և catch() մեթոդների միջոցով։
async/await-ը սինտաքսիկ շաքար է Promise-ի վրա, որը թույլ է տալիս գրել ասինխրոն կոդը սինխրոն ոճով, դարձնելով այն ավելի ընթեռնելի և հեշտ դետագրման համար։
Հիմնական տարբերությունները՝
- Promise-ը պահանջում է then/catch շղթաներ արդյունքների և սխալների մշակման համար։
- async/await-ը թույլ է տալիս օգտագործել await բանալի բառերը՝ սպասելու Promise-ի արդյունքին՝ ներսում ասինխրոն ֆունկցիայի։
Օրինակ՝
// Promise
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
// async/await
async function fetchData() {
try {
const response = await fetch(url);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
fetchData();
Այսպիսով՝ async/await-ը պարզեցնում է Promise-ի հետ աշխատանքը, դարձնելով կոդը ավելի գծային և հասկանալի։