⊗jsSpPrmEx 163 of 294 menu

Poikkeustilanteet promisseissa JavaScriptissä

Opitaan nyt käsittelemään promisissa tapahtuneita poikkeustilanteita. Tällaisen tilanteen sattuessa meidän tulee hylätä promisi käyttämällä erityistä hylkäämisfunktiota, joka automaattisesti siirtyy promisin funktion toiseen parametriin:

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

Promisin funktion sisällä meidän tulee kutsua resolve, jos kaikki sujui normaalisti, tai reject, jos tapahtui poikkeustilanne:

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

Sitten then-metodissa sinun tulee passata parametreina ei yhtä, vaan kaksi funktiota: ensimmäinen toimii, jos promisi suoritettiin normaalisti (resolved), ja toinen - jos se suoritettiin virheellisesti (rejected):

promise.then( function(result) { console.log(result); // tulostaa promisin tuloksen }, function(error) { console.log(error); // tulostaa virhetekstin } );

Yleensä edellä esitetty koodi kirjoitetaan kompaktimmin, näin:

promise.then(function(result) { console.log(result); // tulostaa promisin tuloksen }, function(error) { console.log(error); // tulostaa virhetekstin });

Tee asynkroninen koodi, joka generoi satunnaislukuja välillä 0 - 5. Kääri kaikki tämä promisiin. Anna promisin palauttaa tuloksenaan yksikön jakamisen tulos generoidulla luvulla. Anna promisin suorittua virheellä, jos tapahtui jako nollalla, ja onnistuneesti kaikissa muissa tapauksissa.

Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää