⊗jsSpACEx 158 of 294 menu

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

Фарз кунем, ки агар ба параметри make рақами унсури мавҷуднабудаи массив дода шуда бошад - ин вазъияти истисно аст. Чӣ тавре ки шумо аллакай медонед, истисноҳое, ки дар дохили функсияи асинхронӣ ба амал омадаанд, тавассути 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çeЎзбекOʻzbekTiếng Việt
Мо барои коркарди сомона, таҳлил ва шахсӣ кардан аз cookie истифода мебарем. Коркарди маълумот мувофиқи Сиёсати махфият сурат мегирад.
ҳамаро қабул кардан танзим кардан рад кардан