Здесь у меня есть две JS-асинхронные функции, запущенные одновременно.Остановить ожидающую функцию async в JavaScript
Когда кто-то закончил (callback был запущен), я хотел бы остановить другого, чтобы идти вперед. Однако (это моя проблема) Я не могу использовать глобальные vars. Тогда я хотел бы знать, можно ли остановить ожидающую функцию в JS или каким-либо образом решить мою проблему.
Я признателен за любые ответы :)
EDIT:
Некоторые уточнений:
- Я здесь с использованием чистых JS. HTML не предоставлен.
- Когда я говорю об асинхронном, это может быть любая асинхронная функция, а не только ajax (база данных, время ожидания и т. Д.).
- Мы не знаем их время выполнения.
О коде, вот пример того, что я хотел бы произвести:
asyncFirst(
// ... args
function() { // callback
console.log('foo');
stopOther();
}
);
asyncSecond(
// ... args
function() { // callback
console.log('bar');
stopOther();
}
);
asyncFirst(...);
asyncSecond(...);
Какой алгоритм для stopOther() без использования «состояние» Варс?
Что у вас есть, до сих пор? – laruiss
Они работают в одном и том же локальном пространстве? Вам нужно пройти весь путь до глобального, чтобы установить переменную флага? Это поможет увидеть код. –
Используйте _IIFE_ как предок этого раздела кода для создания замыкания, которое позволит вам обмениваться переменными между функциями без загрязнения глобального пространства имен. –