Ebben az oktatóanyagban megismerheti a JavaScript ígéreteit és az ígéretek láncolását példák segítségével.
A JavaScript-ben az ígéret jó módszer az aszinkron műveletek kezelésére . Arra szolgál, hogy kiderítse, az aszinkron művelet sikeresen befejeződött-e vagy sem.
Az ígéretnek három állapota lehet.
- Függőben levő
- Teljesült
- Elutasítva
Az ígéret függőben lévő állapotban kezdődik. Ez azt jelenti, hogy a folyamat nem teljes. Ha a művelet sikeres, a folyamat teljesített állapotban végződik. Ha pedig hiba lép fel, a folyamat elutasított állapotban végződik.
Például, amikor egy ígéret használatával kér adatokat a szervertől, az függőben lévő állapotban lesz. Amikor az adatok sikeresen megérkeznek, teljesített állapotban lesznek. Ha hiba lép fel, akkor az elutasított állapotban lesz.
Hozzon létre egy ígéretet
Ígéret objektum létrehozásához a Promise()
konstruktort használjuk .
let promise = new Promise(function(resolve, reject)( //do something ));
A Promise()
konstruktor egy függvényt vesz fel argumentumként. A funkció azt is elfogadja, a két funkciót resolve()
, és reject()
.
Ha az ígéret sikeresen visszatér, akkor a resolve()
függvény meghívásra kerül. Ha pedig hiba lép fel, akkor a reject()
függvény meghívásra kerül.
Tegyük fel, hogy az alábbi program aszinkron program. Ezután a program egy ígéret felhasználásával kezelhető.
1. példa: Program ígérettel
const count = true; let countValue = new Promise(function (resolve, reject) ( if (count) ( resolve("There is a count value."); ) else ( reject("There is no count value"); ) )); console.log(countValue);
Kimenet
Ígéret (: "Van egy számérték.")
A fenti programban Promise
létrejön egy objektum, amely két funkciót tölt be: resolve()
és reject()
. resolve()
akkor használható, ha a folyamat sikeres, és reject()
akkor használják, ha hiba lép fel az ígéretben.
Az ígéret akkor oldódik fel, ha a számlálás értéke igaz.

JavaScript ígéretláncolás
Az ígéretek akkor hasznosak, ha több aszinkron feladatot kell egymás után kezelnie. Ehhez ígéretláncolást használunk.
Műveletet hajthat végre, miután az ígéret megoldódott módszerekkel then()
, catch()
és finally()
.
JavaScript majd () metódus
A then()
módszert a visszahívással együtt használják, amikor az ígéretet sikeresen teljesítették vagy megoldották.
A then()
módszer szintaxisa :
promiseObject.then(onFulfilled, onRejected);
2. példa: Az ígéret láncolása ekkor ()
// returns a promise let countValue = new Promise(function (resolve, reject) ( resolve('Promise resolved'); )); // executes when promise is resolved successfully countValue.then( function successValue(result) ( console.log(result); ), ) .then( function successValue1() ( console.log('You can call multiple functions this way.'); ), );
Kimenet
Ígéret megoldva Több funkciót is így hívhat meg.
A fenti programban a then()
módszert arra használják, hogy a függvényeket az ígérethez kapcsolják. A then()
módszert akkor hívják meg, amikor az ígéretet sikeresen megoldják.
Az then()
ígérettel több módszert is láncolhat.
JavaScript catch () metódus
A catch()
módszert a visszahívással együtt használják, amikor az ígéretet elutasítják, vagy ha hiba lép fel. Például,
// returns a promise let countValue = new Promise(function (resolve, reject) ( reject('Promise rejected'); )); // executes when promise is resolved successfully countValue.then( function successValue(result) ( console.log(result); ), ) // executes if there is an error .catch( function errorValue(result) ( console.log(result); ) );
Kimenet
Az ígéret elutasítva
A fenti programban az ígéretet elutasítják. És a catch()
módszert ígérettel használják a hiba kezelésére.

JavaScript ígéret versus visszahívás
Az ígéretek bizonyos szempontból hasonlóak a visszahívási funkciókhoz, hogy mindkettő használható aszinkron feladatok kezelésére.
A JavaScript visszahívási funkciók szinkron feladatok végrehajtására is használhatók.
Különbségeik a következő pontokban foglalhatók össze:
JavaScript ígéret
- A szintaxis felhasználóbarát és könnyen olvasható.
- A hibakezelés könnyebben kezelhető.
- Példa:
api (). majd (függvény (eredmény) (visszatér api2 ();))). majd (függvény (eredmény2) (visszatér api3 ();))). majd (függvény (eredmény3) (// munkát végez)). fogás ( function (error) (// kezelni minden olyan hibát, amely e pont előtt előfordulhat));
JavaScript visszahívás
- A szintaxist nehéz megérteni.
- Lehet, hogy a hibakezelést nehéz kezelni.
- Példa:
api (függvény (eredmény) (api2 (függvény (eredmény2)) (api3 (függvény (eredmény3) (// munkát végez, ha (hiba) (// csinál valamit) más (// csinál valamit));));)) ;
JavaScript végre () metódus
You can also use the finally()
method with promises. The finally()
method gets executed when the promise is either resolved successfully or rejected. For example,
// returns a promise let countValue = new Promise(function (resolve, reject) ( // could be resolved or rejected resolve('Promise resolved'); )); // add other blocks of code countValue.finally( function greet() ( console.log('This code is executed.'); ) );
Output
This code is executed.
JavaScript Promise Methods
There are various methods available to the Promise object.
Method | Description |
---|---|
all(iterable) | Waits for all promises to be resolved or any one to be rejected |
allSettled(iterable) | Waits until all promises are either resolved or rejected |
any(iterable) | Returns the promise value as soon as any one of the promises is fulfilled |
race(iterable) | Wait until any of the promises is resolved or rejected |
reject(reason) | Returns a new Promise object that is rejected for the given reason |
resolve(value) | Returns a new Promise object that is resolved with the given value |
catch() | Appends the rejection handler callback |
then() | Appends the resolved handler callback |
finally() | Appends a handler to the promise |
To learn more about promises in detail, visit JavaScript Promises.