Junior
Magyarázd el, mi az a Promise.race, és hogyan használják JavaScriptben.
sobes.tech MI
Válasz az MI-től
Promise.race elfogad egy iterálható objektumot ígéretekkel, és egy új ígéretet ad vissza. Ez az új ígéret akkor oldódik meg vagy utasítódik el, amint az első ígéret az iterálható objektumban megoldódik vagy elutasításra kerül. Az új ígéret eredménye az első befejezett ígéret eredménye vagy oka lesz.
Használják:
- A leggyorsabb válasz kiválasztására több aszinkron művelet közül.
- Időkorlátok beállítására aszinkron műveletekhez.
Időkorlát példája:
// Funkció, amely létrehoz egy ígéretet, amely egy adott idő után elutasítódik
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error(`Timeout after ${ms}ms`));
}, ms);
});
}
// Aszinkron művelet, amely lehet lassú
function fetchData() {
return new Promise(resolve => {
// Hosszú művelet szimulálása
setTimeout(() => {
resolve('Adatok sikeresen lekérve');
}, 2000); // Tegyük fel, hogy ez a művelet 2 másodpercet vesz igénybe
});
}
// A fetchData-hoz időkorlát hozzáadása a Promise.race segítségével
Promise.race([
fetchData(), // A műveletünk
timeout(1000) // 1 másodperces időkorlát
])
.then(result => {
console.log(result); // Akkor fut le, ha a fetchData a időkorlát előtt befejeződik
})
.catch(error => {
console.error(error.message); // Akkor fut le, ha az időkorlát elsőként lép életbe
});