Я хочу выполнить ряд действий, которые будут выполняться асинхронно (отправка данных на сервер с помощью «готового» обратного вызова).Затем я хочу вызвать событие, когда все эти задачи завершены.Что-то вроде потока присоединяется без потоков.Я написал следующую вспомогательную функцию, которая делает то, что я хочу:
// A quick fake for thread joining.
// Allow objects to add and remove themselves. Once they are all removed, call the callback with the context.
function Waiter(callback, context)
{
this.tarriers = [];
this.callback = callback;
this.context = context;
this.add = function(tarrier)
{
this.tarriers.push(tarrier);
}
this.remove = function(tarrier)
{
this.tarriers = _.without(this.tarriers, tarrier);
if (this.tarriers.length == 0)
{
this.callback(this.context);
}
}
return this;
}
Но я немного переживаю из-за повторного изобретения колес.Есть ли библиотека, которую я могу использовать, которая делает такие вещи (плюс, возможно, другие связанные вещи) для меня.
(я знаю, что JS не является многопоточным).