Junior
Фарқияти истифодаи Promise ва синтаксиси async/await чист?
sobes.tech AI
Ҷавоб аз AI
Promise წარმოადგენს ობიექტს, რომელიც ასახავს ასინქრონული ოპერაციის საბოლოო დასრულებას ან უარყოფას. ის მართავს ასინქრონულ ნაკადებს then() და catch() callback-ების საშუალებით.
async/await არის სინტაქსური შაქარი Promise-ზე, რომელიც ასინქრონულ კოდს ხდის უფრო წაკითხვად და სინქრონულს მსგავსი. ფუნქცია, რომელიც მონიშნულია როგორც async, ყოველთვის აბრუნებს Promise-ს. ოპერატორი await შეიძლება გამოყენებულ იქნას მხოლოდ async ფუნქციის შიგნით და აჩერებს ფუნქციის შესრულებას მანამ, სანამ Promise არ შესრულდება ან უარყოფილი იქნება, რის შემდეგაც აბრუნებს მის შედეგს ან წარმოშობს გამონაკლისს.
| ასპექტი | Promise | Async/Await |
|---|---|---|
| წაკითხვადობა | საჭიროებს .then() და .catch() ჯაჭვებს |
ჰგავს სინქრონულ კოდს, ხაზოვანი ნაკადი |
| შეცდომების მართვა | იყენებს .catch() |
იყენებს try...catch ბლოკებს |
| ნაკადის შესრულება | მართავს callback-ები | აჩერებს/გაახანგრძლივებს ფუნქციას |
| დაბრუნებული მნიშვნელობა | Promise | Promise (async ფუნქციისთვის) ან Promise-ის შედეგი (await-ისთვის) |
| დამოკიდებულება | დამოუკიდებელი მექანიზმი | აგებულია Promise-ზე |
მოყვანილი მაგალითი Promise-თან:
// მაგალითი Promise-თან
function fetchDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("მიღებული მონაცემები (Promise)");
}, 1000);
});
}
fetchDataPromise()
.then(data => console.log(data))
.catch(error => console.error(error));
მოყვანილი მაგალითი async/await-თან:
// მაგალითი async/await-თან
function fetchDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve("მიღებული მონაცემები (async/await)");
}, 1000);
});
}
async function showData() {
try {
const data = await fetchDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
showData();