У меня есть функция, которая запускает многие функции, основанные на обещаниях, в цикле, например:
let doSomething = (page, a, b) => {
return new Promise(async(resolve, reject) => {
eventBus.on('game::lag', () => {
throw new Error('Game lag');
});
while(a.length > 0) {
await doSomethingAsync();
await doSomething2Async();
while(b.length > 0) {
await doSomething3();
b = await getAsyncB();
}
a = await getAsyncA();
}
resolve();
});
};
Теперь в отношении пользовательских событий, которые приходят из другой части программы, я хочу, чтобы этот скрипт умер и остановил все вложенныефункции (doSomething*
функции).Кроме того, у меня есть некоторые интервалы в doSomething*
функциях, но я хочу, чтобы все останавливалось, а также интервалы.
Я пытался, как в примере кода, ошибка генерируется и успешно перехватывается во внешнем файле.Однако я вижу, что doSomething*
скрипты все еще работают.
Это нормально, что вложенные функции все еще работают, хотя я выдал ошибку "parent"?