Как запретить одновременный вызов функции?

Как запретить одновременное выполнение одной асинхронной функции? То есть есть асинхронная функция asyncFnc(data) {...};
Если она вызвана и еще не отработала, как запретить ее вызов в это время, однако поместить его в очередь и чтобы этот вызов обязательно выполнился, но после отработки первого вызова?
  • Вопрос задан
  • 711 просмотров
Пригласить эксперта
Ответы на вопрос 3
lazalu68
@lazalu68
Salmon
Одним из решений может быть любая реализация очереди.
Ответ написан
Комментировать
hahenty
@hahenty
('•')
Без промисов, на старых колбэках: https://codepen.io/anon/pen/jLQBNj?editors=0012
Создает обертку над функцией, вызывает последовательно, последний аргумент обязательно колбэк.
Ответ написан
Комментировать
@miki131
https://github.com/Wizcorp/locks

mutex.lock(function () {
	console.log('We got the lock!');
	// do stuff
	mutex.unlock();
});
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы