Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗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ää