⊗jsSpPrmChE 169 of 294 menu

JavaScriptтеги убадалар тизмесиндеги исключениялар

Кандайдыр бир себептерден улам биздин убадабыз ката менен аяктасын:

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

Бул учурда кодду аткаруу дароо катаны кармоочу функциясы бар thenге же биринчи catchге өтөт, кайсысы алгач кездешсе.

Биринчи учурдун мисалы:

promise.then( function(result) { return result + '1'; } ).then( function(result) { return result + '2'; }, function(error) { // аткаруу дароо бул жерге өтөт } ).then( function(result) { console.log(result); } );

Экинчи учурдун мисалы:

promise.then( function(result) { return result + '1'; } ).then( function(result) { return result + '2'; } ).catch( function(error) { // аткаруу дароо бул жерге өтөт } ).then( function(result) { console.log(result); } );

Кармоочу функциянын эки жолу бар: эгерде ал күтүлбөгөн абал менен күрөшүп чыкса, анда return аркылуу натыйжа кайтарып, аткаруу тизме боюнча улантылат. Эгерде ал ката менен күрөшө албаса, анда же эч нерсе кайтарбайт, же throw аркылуу исключение ыргытат. Бул учурда аткаруу кийинки ката кармоочуга өтөт (then же catchде - кайсысы алгач кездешсе).

Адатта, тизменин бардык каталары бир жерде кармалат: тизменин аягында catch коюлат:

promise.then( function(result) { return result + '1'; } ).then( function(result) { return result + '2'; } ).catch( function(error) { // ката болгон учурда бул жерге түшөбүз } );

Ошондуктан исключение убаданын өзүндө пайда болушу мүмкүн, же тизменин кайсы бир бутагында throw аркылуу ыргытылышы мүмкүн:

promise.then( function(result) { return result + '1'; } ).then( function(result) { if (баарыЖакшы) { return result + '2'; } else { throw new Error('ката'); // эң жакын кармоочуга өтөбүз } } ) .then( function(result) { return result + '3'; } ).catch( function(error) { // эң жакын кармоочу } );

catch так катаны диагностикалоо үчүн керек экендигин эсиңизде болсун: ал чечилиши мүмкүнбү же жокпу. Эгерде ката чечилиши мүмкүн болсо, анда catch анын чечимин өзүнөн кийинки thenге өткөрүп берүүгө тийиш. Ал эми чечилиши мүмкүн эмес болсо (же бул catch жөн гана аны кантип чечүүнү билбесе), анда биз же эч нерсе кайтарбайбыз же исключение ыргытабыз:

promise.then( function(result) { return result + '1'; } ).then( function(result) { return result + '2'; } ).catch( function(error) { if (катаЧечилүүчү) { return 'берилмелер'; // кийинки thenге жөнөтөбүз } else { // эч нерсе кайтарбайбыз же исключение ыргытабыз } } ).then( function(result) { // бул жерде катаны чечебиз } );
Кыргызча
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 файлдарын колдонобуз. Маалыматтарды иштетүү Маалыматты коргоо саясаты боюнча жүргүзүлөт.
баарын кабыл алуу ыңгайлаштыруу четке кагуу