⊗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
අපි වෙබ් අඩවිය ක්‍රියාත්මක කිරීම, විශ්ලේෂණය සහ පුද්ගලීකරණය සඳහා කුකී භාවිතා කරමු. දත්ත සැකසීම සිදුකරනු ලබන්නේ ගෝපනීයතා ප්‍රතිපත්තිය අනුව ය.
සියල්ල පිළිගන්න කොන්දේසි ප්‍රතික්ෂේප කරන්න