Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
⊗jsSpPrmEx 163 of 294 menu
◀ ▶

Erandolukorrad JavaScript'i lubadustes

Õpime nüüd töötlema erandolukordi, mis on tekkinud lubaduse sees. Sellise olukorra tekkimisel peame lubaduse tagasi lükkama spetsiaalse tagasilükkamise funktsiooni abil, mis automaatselt satub lubaduse funktsiooni teise parameetrisse:

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

Lubaduse funktsiooni sees peame kutsuma resolve, kui kõik läks tavapäraselt, või reject, kui tekkis erandolukord:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; if (!isError) { resolve([1, 2, 3, 4, 5]); // lubaduse andmed } else { reject('error in promise'); // teie veatekst } }, 3000); });

Seejärel meetodis then peaksite parametritena edastama mitte ühe, vaid kaks funktsiooni: esimene töötab, kui lubadus töötas tavapäraselt (resolved), ja teine - kui töötas veaga (rejected):

promise.then( function(result) { console.log(result); // kuvab lubaduse tulemuse }, function(error) { console.log(error); // kuvab veateksti } );

Reeglina kirjutatakse ülaltoodud kood kompaktsemalt, niimoodi:

promise.then(function(result) { console.log(result); // kuvab lubaduse tulemuse }, function(error) { console.log(error); // kuvab veateksti });

Koostage asünkroonne kood, mis genereerib juhuslikke numbreid 0 kuni 5. Mähige kõik see lubadusse. Olgu lubaduse tulemuseks ühe jagamise tulemus genereeritud numbriga. Olgu lubadus täidetud veaga, kui toimub jagamine nulliga, ja edukalt kõigil muudel juhtudel.

← →
↑
Eesti▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu