Задать вопрос

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

Как запретить одновременное выполнение одной асинхронной функции? То есть есть асинхронная функция asyncFnc(data) {...};
Если она вызвана и еще не отработала, как запретить ее вызов в это время, однако поместить его в очередь и чтобы этот вызов обязательно выполнился, но после отработки первого вызова?
  • Вопрос задан
  • 734 просмотра
Подписаться 3 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 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();
});
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
Rocket Смоленск
от 80 000 до 130 000 ₽
div. Ставрополь
от 40 000 до 90 000 ₽
Wanted. Санкт-Петербург
До 220 000 ₽
18 дек. 2024, в 12:39
1000 руб./за проект
18 дек. 2024, в 12:37
10000 руб./за проект
18 дек. 2024, в 12:22
5000 руб./за проект