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

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

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

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

Похожие вопросы