Ի՞նչ եղանակներ գիտեք ասինխրոնային կոդով աշխատելու համար։
sobes.tech AI
Պատասխան AI-ից
Callbacks, Promises, async/await.
Callbacks: Ֆունկցիաներ, որոնք փոխանցվում են որպես արգումենտներ մյուս ֆունկցիաներին և կանչվում են այն հետո, երբ ավարտվում է ասինխրոն գործողությունը:
Promises: Օբյեկտներ, որոնք առաջարկում են ավելի հարմարավետ միջոց ասինխրոնության կառավարելու համար համեմատած callbacks-ների հետ: Նրանք ունեն վիճակներ pending, fulfilled և rejected:
// Օրինակ Promise
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Գործողությունը հաջողությամբ ավարտվեց!');
}, 1000);
});
}
asyncOperation()
.then(result => console.log(result))
.catch(error => console.error(error));
async/await: Սինտակսիկ շաքար Promises-ի վրա, որը դարձնում է ասինխրոն կոդը ավելի նման սինխրոնին և բարելավում է նրա ընթերցելիությունը:
// Օրինակ async/await
async function performAsyncOperation() {
try {
const result = await asyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
performAsyncOperation();
Մեթոդների համեմատություն:
| Մեթոդ | Ընթերցելիություն / Պահպանում | Հատուկ սխալների կառավարում | Հոսքի կառավարում |
|---|---|---|---|
| Callbacks | Փոքր-ինչ ավելի քիչ ընթերցելի (Callback Hell) | Կարծես դժվար | Կարծես դժվար |
| Promises | Ավելացված | Հարմար (.catch) | Հարմար (.then, .catch) |
| async/await | Լավագույն | Հարմար (try...catch) | Հարմար (await) |
Ամենաշատ նախընտրելի մեթոդը ժամանակակից Node.js ծրագրերում է async/await օգտագործումը, քանի որ այն ավելի ընթերցելի և հարմար է։ Promises մնում են կարևոր գործիք, հատկապես ցածր մակարդակի իրականացման ժամանակ։ Callbacks օգտագործվում են հնացած կոդում կամ ցածր մակարդակի օպերացիաներում Node.js-ի միջուկում։