I want to finish a promise task outside the task itself, just like some language can kill process/thread. Seeing from this question, I implemented my code as below. However, the promise still continues after counting to 5. I would be grateful if somebody can help me with this.
let resolveCurrentPromise = () => {};
const longTimeHandler = async () => {
let counter = 0;
while (true) {
console.log(counter++);
await new Promise((res) => {
setTimeout(res, 1000);
});
if (counter === 5) {
resolveCurrentPromise();
}
}
};
(async () => {
await new Promise((res) => {
resolveCurrentPromise = res;
longTimeHandler();
});
})();