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
так же может быть использован в целях гарантированного выполнения
коллбэка в рамках какого-то событийного сценария, подобно инициализаторам приложения.