Middle
Қайтарилган уәде-ваъданы рад этиш учун функция яратинг, хатолик сифатида "timeout_error" сатрини ўтказиб, агар у белгиланган вақтда ҳал қилинмаса ёки асосий каби одатий ҳолда ҳаракат қилса. @param {Promise} promise Асосий уәде @param {Number} timeoutMilliseconds Timeout учун вақт миллисекундларда @return {Promise} Керакли хулқ билан уәде function withTimeout(promise, timeout) { return new Promise((res, rej) => { const timeoutId = setTimeout(() => { rej("timeout_error") }) }) }
sobes.tech AI
Ҷавоб аз AI
Функция должна создавать два конкурентных промиса: исходный и таймаут, который через заданное время отклоняется с ошибкой "timeout_error". Затем возвращается промис, который резолвится или реджектится первым из них.
function withTimeout(promise, timeoutMilliseconds) {
return new Promise((resolve, reject) => {
const timeoutId = setTimeout(() => {
reject("timeout_error");
}, timeoutMilliseconds);
promise.then(
(value) => {
clearTimeout(timeoutId);
resolve(value);
},
(error) => {
clearTimeout(timeoutId);
reject(error);
}
);
});
}
Такой подход гарантирует, что если исходный промис не успеет завершиться за timeout, будет отклонён с ошибкой "timeout_error". Если же он завершится раньше, таймаут отменяется.