Javascript библиотека присоединиться к потоку? - PullRequest
1 голос
/ 12 октября 2011

Я хочу выполнить ряд действий, которые будут выполняться асинхронно (отправка данных на сервер с помощью «готового» обратного вызова).Затем я хочу вызвать событие, когда все эти задачи завершены.Что-то вроде потока присоединяется без потоков.Я написал следующую вспомогательную функцию, которая делает то, что я хочу:

// 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 не является многопоточным).

1 Ответ

1 голос
/ 12 октября 2011

Методы jQuery Deferred / Promise делают именно это.

http://api.jquery.com/category/deferred-object/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...