Async/wait-ը JavaScript-ի մի հատկություն է, որը հեշտացնում է ասինխրոն ծրագրավորումը՝ թույլ տալով գրել ասինխրոն կոդ, որը նման է համաժամանակյա կոդի: Այս հոդվածում մենք կքննարկենք Async/wait-ի հիմունքները JavaScript-ում, ներառյալ՝ ինչպես օգտագործել async
և await
հիմնաբառերը, և կներկայացնենք հեշտ հասկանալի օրինակներ, որոնք կօգնեն ձեզ հասկանալ դրանց գործնական իրականացումը:
Ի՞նչ է Async/Await-ը:
Async/wait-ը ասինխրոն կոդ գրելու միջոց է, որը նման է համաժամանակյա կոդի: Այն թույլ է տալիս գրել ասինխրոն կոդ՝ օգտագործելով համաժամանակյա կոդի նման շարահյուսությունը, ինչը հեշտացնում է այն կարդալն ու հասկանալը: Async/wait-ը կառուցված է Promises-ի վրա, որը մենք քննարկել ենք մեր նախորդ հոդվածում:
async
Հիմնաբառ
async
հիմնաբառը օգտագործվում է ֆունկցիան որպես ասինխրոն սահմանելու համար: Asynchronous ֆունկցիան վերադարձնում է Promise, որը լուծում է ֆունկցիայի վերադարձի արժեքով կամ մերժում է սխալով, եթե սխալ է տեղի ունենում: async
բանալի բառին հաջորդում է ֆունկցիայի հայտարարությունը:
Օրինակ՝ օգտագործելով async
հիմնաբառը
async function fetchData() { const data = { message: 'Hello, world!', }; return data; } fetchData().then((data) => { console.log(data.message); // Output: Hello, world! });
Վերևի օրինակում մենք սահմանեցինք async
ֆունկցիա, որը կոչվում է fetchData
, որը վերադարձնում է message
հատկություն ունեցող օբյեկտ: Այնուհետև մենք զանգահարեցինք fetchData
-ը և օգտագործեցինք .then()
մեթոդը՝ լուծված Խոստումը մշակելու և data.message
-ը կոնսոլում գրանցելու համար:
await
հիմնաբառ
await
հիմնաբառը օգտագործվում է սպասելու, որ խոստումը լուծվի նախքան կոդի հաջորդ տողը գործարկելը: await
հիմնաբառը կարող է օգտագործվել միայն async
ֆունկցիայի ներսում:
Օրինակ՝ await
հիմնաբառի օգտագործում
function fetchData() { return new Promise((resolve, reject) => { const data = { message: 'Hello, world!', }; setTimeout(() => { if (data) { resolve(data); } else { reject(new Error('Data not found')); } }, 1000); }); } async function main() { const data = await fetchData(); console.log(data.message); // Output: Hello, world! } main();
Վերևի օրինակում մենք սահմանեցինք fetchData
ֆունկցիա, որը վերադարձնում է Promise, որը լուծում է message
հատկություն ունեցող օբյեկտի հետ 1 վայրկյան ուշացումից հետո: Մենք նաև սահմանեցինք async
ֆունկցիա, որը կոչվում է main
, որն օգտագործում է await
հիմնաբառը՝ սպասելու համար, որ fetchData
Խոստումը լուծվի: Երբ Promise-ը լուծվի, մենք գրանցում ենք data.message
-ը վահանակ: Ի վերջո, մենք կանչում ենք main
ֆունկցիան՝ ասինխրոն կոդը գործարկելու համար:
Սխալների հետ կապված
Դուք կարող եք կարգավորել սխալները Async/wait կոդի մեջ՝ օգտագործելով try/catch
բլոկը: Եթե try
բլոկում սխալ է տեղի ունենում, ապա գործարկվում է catch
բլոկի ներսում գտնվող կոդը:
Օրինակ՝ Սխալների կառավարում
function fetchData() { return new Promise((resolve, reject) => { const data = null; setTimeout(() => { if (data) { resolve(data); } else { reject(new Error('Data not found')); } }, 1000); }); } async function main() { try { const data = await fetchData(); console.log(data.message); // This line won't execute } catch (error) { console.error(error.message); // Output: Data not found } } main();
Վերոնշյալ օրինակում մենք սահմանեցինք fetchData
ֆունկցիա, որը վերադարձնում է խոստում, որը մերժվում է սխալի հաղորդագրությամբ: Մենք նաև սահմանեցինք async
ֆունկցիա, որը կոչվում է main
, որն օգտագործում է await
հիմնաբառը՝ սպասելու համար, որ fetchData
խոստումը մերժվի: Մենք օգտագործեցինք try/catch
բլոկ՝ մերժումը կարգավորելու և սխալի հաղորդագրությունը վահանակում գրանցելու համար:
Եզրակացություն
Async/wait-ը JavaScript-ի հզոր հատկանիշ է, որը հեշտացնում է ասինխրոն ծրագրավորումը՝ թույլ տալով գրել ասինխրոն կոդ, որը նման է համաժամանակյա կոդի: Async/wait-ի հիմունքների իմացությունը, ներառյալ async
և await
հիմնաբառերը և սխալների մշակումը, կարևոր է JavaScript-ի ցանկացած ծրագրավորողի համար, ովքեր ցանկանում են բարելավել իրենց կոդի արդյունավետությունն ու պահպանելիությունը: Օգտագործելով Async/wait-ը ձեր նախագծերում, դուք կարող եք ստեղծել կոդ, որն ավելի հեշտ է կարդալ և հասկանալ, դարձնելով այն ավելի մատչելի այլ մշակողների համար և նվազեցնելով սխալների հավանականությունը:
Եթե ձեզ դուր եկավ հոդվածը և ցանկանում եք ցույց տալ ձեր աջակցությունը, համոզվեք, որ.
👏 Ծափահարեք պատմությանը (50 ծափ)՝ օգնելու այս հոդվածը ցուցադրել
👉Հետևեք ինձ Medium կայքում
Ստուգեք ավելի շատ բովանդակություն իմ Միջին պրոֆիլում