⊗jsSpPrmEx 163 of 294 menu

JavaScriptтеги промисстерин ич-арасындагы кокустук учурлар

Келгиле, азыр промистин ичинде болгон кокустук учурларды кантип иштетүүнү үйрөнөлү. Мындай учур пайда болгондо, биз промисти өзүнчө четке кагуу функциясы менен четке кагуу керек, бул функция автоматтык түрдө промис функциясынын экинчи параметрине түшөт:

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('promistegi ката'); // сиздин ката текстиңиз } }, 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кө чейин кокустук сандарды генерациялаган асинхрондук код жасаңыз. Мунун баарын промиске ороп коюңуз. Промис өзүнүн натыйжасы катары бирди генерацияланган санга бөлүүнүн натыйжасын кайтарсын. Эгер нөлгө бөлүү болсо, промис ката менен аткарылсын, калган бардык учурларда ийгиликтүү аткарылсын.

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