for (let i=0; i < 300; i++) {
try {
const timerId = setTimeout(() => {
console.log('in setTimeout continue');
continue;
}, 1000 * 60 * 3);
await Order(i); // то самое стороннее апи
}
catch(e) {
console.log('error_text:', e)
}
finally{
clearTimeout(timerId);
}
}
let timerId = 0; // вынес так как не знал как таймаут потом в каждой итерации сбрасывать
try {
const firstPromiseResult = await Promise.race([
new Promise((resolve) => {
timerId = setTimeout(()=> {
resolve('TIMEOUT')
}, 1000 * 60 * 4) // время через которое мы идём дальше по циклу( тут его не видно(цикла))
}),
order(Id) // наш запрос к стороннему апи, тут без await т.к. зависает и проблема остаётся
]);
}
catch(e) {
console.log('error_text:', e)
}
finally{
clearTimeout(timerId); // сбрасываем таймаут в любом случае, чтобы не перегружать систему
}
}
const TIMEOUT = "TIMEOUT";
for (let i=0; i < 300; i++) {
await Promise.any([
Order(i), // то самое стороннее апи
new Promise((resolve) => setTimeout(() => resolve(TIMEOUT), 3 * 6e4))
])
.then((result) => {
if (result === TIMEOUT) {
console.log(TIMEOUT);
} else {
console.log("Order fulfilled");
}
})
}