Marionette.Callbacks

Внимание: не рекомендуется к использованию.

Класс Marionette.Callbacks устарел и не рекомендуется к использованию. Он будет удален в следующем мажорном релизе. Вместо этого класса следует использовать промисы или события для управления асинхронной логикой.

Объект Callbacks помогает управлять коллекцией коллбеков и выполнять их асинхронно-безопасным способом.

Для работы с коллбэками существуют два метода:

  • add
  • run

Метод add добавляет новый коллбэк, который будет выполнен позже.

Метод run выполняет все текущие коллбэки, используя указанный для каждого коллбэка контекст, и передает в них предоставленные опции options.

Содержание

Основное применение

var callbacks = new Marionette.Callbacks();

callbacks.add(function(options) {
  alert("I'm a callback with " + options.value + "!");
});

callbacks.run({value: "options"}, someContext);

В этом примере выводится высплывающее окно с текстом “I’m a callback with options!”. Контекст вызова для каждого из коллбэков был установлен на объект someContext, который является опциональным параметром и может быть любым валидным JavaScript-объектом.

Указание контекста для каждого коллбека

Дополнительно вы можете указать требуемый контекст для каждого из коллбэков в момент добавления коллбэка:

var callbacks = new Marionette.Callbacks();

callbacks.add(function(options) {
  alert("I'm a callback with " + options.value + "!");

  // в качестве второго параметра укажем контекст для коллбэка
}, myContext);

// контекст `someContext` игнорируется коллбэком, добавленным выше
callbacks.run({value: "options"}, someContext);

В этом случае в запущенном коллбэке this будет указывать на объект myContext, а не на someContext.

Продвинутое / Асинхронное использование

Callbacks выполняет каждый коллбэк способом, похожим на асинхронный, и может быть использовать для облегчения работы с асинхронными обратными вызовами (коллбэками).

Объект Marionette.Application использует Callbacks для управления инициализаторами.

Callbacks так же может быть использован в целях гарантированного выполнения коллбэка в рамках какого-то событийного сценария, подобно инициализаторам приложения.