⊗jsSpPrmSS 174 of 294 menu

JavaScript-da Ýürrüş Düzgüninde Promiseler

Promise hell meselesini çözmek üçin, asenkron kody has aňsat - ýürrüş düzgüninde ýazmaga mümkinçilik berýän ýörite promiseler sintaksisi düşünildi.

Geliň ony öwrenmäge başlalyň. Ilki bilen öňki sapakdaky kody alalyň:

function func() { getSmth(2).then(res => { console.log(res); // 4 çykarar }); } func();

getSmth funksiýamyz ýürrüşli bolsa, func funksiýasynyň kodyny aşakdaky ýaly ýazyp bilerdik:

function func() { let res = getSmth(2); console.log(res); // 4 çykarar }

getSmth funksiýasy, şeýle-de bolsa, asenkron, şonuň üçin ýokarda görkezilen kod işlemez. Ýöne, promiseleriň ýürrüş düzgüninden peýdalanyp, bize meňzeş bir zat alarys. Geliň muny edeliň.

Ilki bilen, biz öz funksiýamyzy func ýörite buýruk async bilen asenkron diýip yglan etmelidiris:

async function func() { }

Şondan soň, biz func funksiýasynyň içinde ýörite buýruk await ulanup bilersiňiz. Bu buýruk, promisden öň ýazylan, JavaScript-i promis ýerine ýetirilýänçä garaşmaga mejbur eder. Şondan soň buýruk promisiň netijesini gaýtarar, we kod ýerine ýetirilmegi dowam eder.

Bizim ýagdaýymyzda, biz await getSmth çakylyşyndan öň ýazmalydyrys. Bu funksiýanyň çakylyşynyň netijesi promis bolany üçin, kod ýerine ýetirilmegi diňe şol promisiň ýerine ýetirilmeginden soň dowam eder. Bolşoňa, promisiň netijesini üýtgeýjä ýazyp bolýar. Geliň beýan edileni edeliň:

async function func() { let res = await getSmth(2); console.log(res); // 4 çykarar } func();

Geliň getSmth birnäçe gezek çagyrýalyň:

async function func() { let res1 = await getSmth(2); let res2 = await getSmth(3); console.log(res1 + res2); // 13 çykarar } func();

Indi bolsa, getSmth siklde çagyryp göreliň:

async function func() { let arr = [1, 2, 3, 4, 5]; let sum = 0; for (let elem of arr) { sum += await getSmth(elem); } console.log(sum); } func();

Aşakdaky kody ýürrüş sintaksisi arkaly gaýtadan ýazyň:

function func() { getSmth(2).then(res1 => { getSmth(3).then(res2 => { getSmth(4).then(res3 => { console.log(res1 + res2 + res3); }); }); }); } func();
Türkmen
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkçeЎзбекOʻzbekTiếng Việt
Biz sahypanyň işlemegi, analitika we şahsyýetleşdirmek üçin cookie ulanýarys. Maglumatlaryň işlenişi Gizlinlik syýasaty boýunça amala aşyrylýar.
hemmesini kabul et sazlamak ret et