Marionette.Configuration

Marionette.js имеет несколько глобально настраиваемых параметров, которые влияют на работу приложение. Большая часть из них описана в других разделах документации. В этот раздел документации будет помещаться информация о наиболее общих параметрах, которые можно настроить.

Marionette.Deferred

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

Свойство Marionette.Deferred считается усторевшим и не рекомендуется к использованию. В следующем мажорном релизе Marionette.Deferred будет удалено. Это свойство используется для настройки класса Marionette.Callbacks, который также будет удален в следующем мажорном релизе. Вместо проксирования свойства Deferred лучше использовать натиные промисы или полифилы (например, es6-promise) если вы поддерживаете старые браузеры. Также можно использовать объект $.Deferred, но он не совместим с ES6 Promise, а потому тоже не рекомендован к использованию.

По умолчанию, в Marionette используется Backbone.$.Deferred для создания объектов с определенным методом then (thenable objects).

Переопределение Marionette.Deferred

Если вы используете Marionette без jQuery, то вам, первым делом, понадобится объект Backbone.$.Deferred для поддержки совместимости (shim). Backbone.$.Deferred предоставляет объект, который поддерживает следующие свойства:

  1. promise: объект спецификации Promises/A+ с определенным методом then или функция, которая возвращает промис объект
  2. resolve: функция, которая переводит промис объект в состояние «выполнено». Можно установить значение, которое будет передано в качестве аргумента в функцию обратного вызова метода then.

Например:

var deferred = Marionette.Deferred();

_.result(deferred, 'promise').then(function (target) {
    console.log("Hello, " + target + "!");
});

deferred.resolve("world"); // асинхронный "Hello, world!"

Если вы хотите использовать иную библиотеку для промисов, то переопределите значение по умолчанию:

Marionette.Deferred = myDeferredLib;