Junior
Selgitage, mis on Promise.race ja kuidas seda JavaScriptis kasutatakse.
sobes.tech AI
Vastus AI-lt
Promise.race võtab vastu iteratiivse objekti lubadustest ja tagastab uue lubaduse. See uus lubadus lahendatakse või lükatakse tagasi niipea, kui esimene lubadus iteratiivses objektis lahendatakse või lükatakse tagasi. Uue lubaduse tulemus on esimese lõpetatud lubaduse tulemus või põhjus.
Kasutatakse:
- Valida kiireim vastus mitmest asünkroonsest operatsioonist.
- Asünkroonsete operatsioonide jaoks ajapiirangute rakendamine.
Näide ajapiiranguga:
// Funktsioon, mis loob lubaduse, mis lükatakse tagasi teatud aja pärast
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error(`Timeout after ${ms}ms`));
}, ms);
});
}
// Asünkroonne operatsioon, mis võib olla aeglane
function fetchData() {
return new Promise(resolve => {
// Pikaajalise operatsiooni simulatsioon
setTimeout(() => {
resolve('Andmed edukalt saadud');
}, 2000); // Oletame, et see operatsioon kestab 2 sekundit
});
}
// Promise.race kasutamine, et lisada fetchData-le ajapiirang
Promise.race([
fetchData(), // Meie operatsioon
timeout(1000) // 1 sekundi ajapiirang
])
.then(result => {
console.log(result); // Käivitatakse, kui fetchData lõpeb enne ajapiirangu täitumist
})
.catch(error => {
console.error(error.message); // Käivitatakse, kui esimene toimub ajapiirang
});