Junior
Тавзеҳ диҳед, Promise.race чӣ гуна аст ва дар JavaScript чӣ гуна истифода мешавад.
sobes.tech AI
Ҷавоб аз AI
Promise.race қабул мекунад iterable объекти ваъдаҳо ва баргардондани ваъдаи навро. Ин ваъда, ки вақте аввалин ваъда дар объекти iterable ҳал ё рад мешавад, ҳал ё рад мешавад. Натиҷаи ваъдаи нав натиҷа ё сабаби рад кардани аввалин ваъдаи анҷомёфта хоҳад буд.
Барои:
- интихоби ҷавоби зудтарин аз чанд амали асинхронӣ.
- иҷрои мӯҳлатҳо барои амалиёти асинхронӣ.
Масалан мӯҳлат:
// Функсия, ки ваъдае месозад, ки пас аз вақти муайян рад мешавад
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(() => {
reject(new Error(`Timeout after ${ms}ms`));
}, ms);
});
}
// Амалиёти асинхронӣ, ки метавонад дер бошад
function fetchData() {
return new Promise(resolve => {
// Имомияи амали дароз
setTimeout(() => {
resolve('Маълумот бо муваффақият гирифта шуд');
}, 2000); // Гумон мекунем, ки ин амалиёт 2 сония мегирад
});
}
// Истифодаи Promise.race барои илова кардани мӯҳлат ба fetchData
Promise.race([
fetchData(), // Амалиёти мо
timeout(1000) // Мӯҳлати 1 сония
])
.then(result => {
console.log(result); // Агар fetchData пеш аз мӯҳлат анҷом ёбад, иҷро мешавад
})
.catch(error => {
console.error(error.message); // Агар мӯҳлат аввал ба амал ояд, иҷро мешавад
});