Junior
Promise жана async/await синтаксисин колдонууда эмнеге айырмасы бар?
sobes.tech AI
AIден жооп
Promise объектти, ал асинхрондук операциянын аяктоо же четке кагуу тууралуу билдирет. Ал .then() жана .catch() колбектер аркылуу асинхрондук агымдарды башкарат.
async/await - бул Promise үстүндөгү синтаксистик шекер, ал асинхрондук кодду окууга жеңил жана синхронго окшош кылат. async деп белгиленген функция ар дайым Promise кайтарат. await оператору only 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();