⊗jsSpACEx 158 of 294 menu

JavaScript да асинхрон коллбэклардаги истиснолар

Фароз қилайлик, make параметрига массивнинг мавжуд бўлмаган элементининг номери ўтказilган бўлса - бу истиснолий вазият. Сиз билланингиздек, асинхрон функция ичида пайдо бўлган истиснолар try-catch орқали тутиб олинмайди. Бизнинг ҳолатимизда make ёки коллбэк ичида пайдо бўлган истисно тутиб олинмайди:

try { make(10, function(res) { console.log(res); }); } catch(err) { // туттиб олинмайди }

Коллбэк-ёндалишда истиснолар билан куйидагича ишланилади: коллбэкнинг биринчи параметрига натижа, иккинчисига - хатолик жўнатилади. Бу ҳолатда хатоликларни бошқариш куйидагича амалга оширилади:

make(10, function(res, err) { if (!err) { console.log(res); // хатолик юз бермади, натижани чиқарамиз } else { console.log(err); // хатолик юз берди, унинг матнини чиқарамиз } });

Келтирилган тавсифга мувофик бизнинг make функциямиз кодини қайта тайёрлаймиз:

function make(num, callback) { setTimeout(function() { let arr = [1, 2, 3, 4, 5]; let err; if (arr[num] === undefined) { err = 'elem not exists'; // хатолик матни } else { err = null; // хатолик йўқ } callback(arr[num], err); }, 3000); }
Ўзбек
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
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш