Junior
async/await жана Promise ортосундагы айырма эмнеде?
sobes.tech AI
AIден жооп
async/await — бул промисстер үстүндөгү синтаксистик шекер. Ал асинхрон кодду көбүрөөк окула турган жана синхрон стилине окшош жазууга мүмкүндүк берет, async ачкыч сөзү менен функцияларды белгилеп, алардын ичинде await колдонуп промис чечилүүсүн күтөт. Promises — бул асинхрон операциянын акыркы аяктоо (же ката кетирүү) жана анын натыйжалуулугун көрсөтүүчү объекттер.
| Өзгөчөлүк | async/await | Promise |
|---|---|---|
| Синтаксис | Көбүрөөк синхрон кодго окшош. | .then(), .catch(), .finally() ыкмаларын колдонуу. |
| Окуулушу | Жалпысынан жогору, өзгөчө з chained. | Кыйынчылыкка алып келиши мүмкүн "Callback hell". |
| Ката иштетүү | Стандарттык try...catch колдонуу. |
.catch() же .then() экинчи аргументин колдонуу. |
| Параллелизм | Ачыкка чыгуу Promise.all() же Promise.allSettled() колдонуу талап кылынат. |
Ачык болушу мүмкүн, бирок async/await жок болсо окуу кыйын. |
// Promis менен мисал
function getDataPromise() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Маалымат алынды');
}, 1000);
});
}
getDataPromise()
.then(data => {
console.log(data);
})
.catch(error => {
console.error(error);
});
// async/await менен мисал
async function getDataAsync() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Маалымат алынды');
}, 1000);
});
}
async function processData() {
try {
const data = await getDataAsync();
console.log(data);
} catch (error) {
console.error(error);
}
}
processData();