⊗jsSpPrmEx 163 of 294 menu

JavaScript да промислардаги истисноний вазиятлар

Келинг, энди промис ичида юз берган истисноний вазиятларни қайта ишлашни ўрганамиз. Бундай вазият юз берган тақдирда, биз промисни ўзгартириш функциясининг иккинчи параметрига автomatik кириб борадиган махсус рад этиш функнияси ёрдамида рад этишимиз керак:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { ... }, 3000); });

Промис функнияси ичида биз ҳаммаси нормал ўтган бўлса, resolve ни чақиришимиз керак, ёки истисноний вазият юз берган бўлса, reject ни чақиришимиз керак:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // промис маълумотлари } else { reject('promise да хатолик'); // сизнинг хатолик матинингиз } }, 3000); });

Сўнгра then усулида параметрлар сифатида сиз бир эмас, балки иккита функния ўтказасиз: биринчиси промис нормал ишлаган тақдирда (резолв бўлганда) ишлайди, иккинчиси эса хатолик билан ишлаган тақдирда (реджект бўлганда) ишлайди:

promise.then( function(result) { console.log(result); // промис натижасини чиқаради }, function(error) { console.log(error); // хатолик матинини чиқаради } );

Одатда, юқорида келтирилган код қуйидагидек ямонрок ёзилади:

promise.then(function(result) { console.log(result); // промис натижасини чиқаради }, function(error) { console.log(error); // хатолик матинини чиқаради });

0 дан 5 гача тасodифий сонлар генерация қиладиган асинхрон код яратинг. Ҳаммасини промис ичига оранг. Промис ўз натижаси сифатида бирликни генерация қилинган сонга бўлиш натижасини қайтарсин. Агар нолга бўлиш юз берган бўлса, промис хатолик билан, ҳамма бошқа ҳолатларда эса муваффақият билан тугасин.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш