Всем привет. Недавно столкнулся с ситуацией, когда что-то синхронное в промисе зависает или зацикливается, вся асинхронность улетает в никуда. Для примера, иллюстрирующего эту ситуацию, я создал 2 промиса с синхронными лупами , которые гадят в консоль. В первом промисе предусмотрел таймер таймута на реджект, который кстати тоже не сработает.
Вопрос следующий, как бороться с подобными ситуациями?
пример кода:
const f1 = () => {
return new Promise((resolve, reject) => {
setTimeout(reject, 3000, "timeout");
while (true) {
console.log(1);
}
resolve(ture);
});
};
const f2 = () => {
return new Promise((resolve, reject) => {
while (true) {
console.log(2);
}
resolve();
})
};
f1();
f2();
В консоль до бесконечности будет лететь -> 1