⊗jsSpPrmSta 166 of 294 menu

Promisen tilat JavaScriptissä

Promisi voi olla yhdessä kolmesta tilasta. Luomisen yhteydessä promisi on odottavassa tilassa (pending), ja sitten siitä voi tulla täytetty (fulfilled), palauttaen saadun tuloksen, tai hylätty (rejected), palauttaen hylkäyksen syyn. Voit nähdä siirtymisen yhdestä tilasta toiseen suorittamalla seuraavan koodin:

let promise = new Promise(function(resolve, reject) { setTimeout(function() { let isError = false; // aseta joko true tai false if (!isError) { resolve([1, 2, 3, 4, 5]); } else { reject('error in promise'); } }, 3000); }); setInterval(function() { console.log(promise); // tulostamme promisin konsoliin joka sekunti }, 1000);

Huomaa, että tilat fulfilled ja rejected ovat muuttumattomia: jos promisi on siirtynyt yhteen näistä tiloista, se ei voi enää siirtyä toiseen. Katsotaanpa esimerkkiä. Seuraavassa koodissa reject -kutsu tapahtuu aiemmin, joten resolve -kutsua ei huomioida:

let promise = new Promise(function(resolve, reject) { setTimeout(() => reject(new Error('error')), 1000); setTimeout(() => resolve('ignored'), 2000); });

Tee promisi, joka suoritetaan onnistuneesti jonkin ajan kuluttua. Tulosta se konsoliin ja tutki sen alkutila ja valmistunut tila.

Tee promisi, joka epäonnistuu jonkin ajan kuluttua. Tulosta se konsoliin ja tutki sen alkutila ja valmistunut tila.

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ää