DeferredList

Объект Deferred является частью библиотеки Base, а библиотека Core обеспечивает дополнительное приложение DeferredList, которое предоставляет средства управления множеством объектов Deferred. Среди типичных случаев применения DeferredList можно назвать:
• Когда необходимо запустить свою функцию обратного вызова или цепочку, после того как отработают все функции обратного вызова объектов Deferred в списке
• Когда необходимо запустить свою функцию обратного вызова или цепочку, если отработает хотя бы одна функция обратного вызова, принадлежащая какомулибо из объектов Deferred в списке
• Когда необходимо запустить свою функцию обработки ошибок или цепочку, если отработает хотя бы одна функция обработки ошибок, принадлежащая какомулибо из объектов Deferred в списке

Ниже приводится сигнатура функции DeferredList:
dojo.DeferredList(/*Array*/list, /*Boolean?*/fireOnOneCallback, /*Boolean?*/
fireOnOneErrback, /*Boolean?*/consumeErrors, /*Function?*/canceller)

Сигнатура достаточно очевидна: при вызове конструктора достаточно передать ему единственный аргумент – массив объектов Deferred. По умолчанию объект DeferredList запускает свою цепочку функций обратного вызова, только когда отработают цепочки функций обратного вызова всех объектов Deferred.


Передавая логические аргументы, можно обеспечить запуск цепочек функций обратного вызова и функций обработки ошибок, если отработала хотя бы одна функция обратного вызова или функция обработки ошибок, соответственно.

Если в аргументе consumeErrors передать значение true, то ошибки будут поглощаться объектом DeferredList, что может быть удобно, когда нежелательно воспроизводить ошибки, порожденные отдельными объектами Deferred в списке. Аргумент canceller обеспечивает возможность передать свою собственную функцию отмены точно так же, как и в обычном объекте Deferred.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела Dojo на эту тему:
JSON
OpenAjax Hub
Внедрение объектов Deferred в функции XHR
Вызов удаленных процедур
Загрузка файлов с помощью IFRAME