0

В настоящее время я создаю веб-приложение Backbone.js и jquery Mobile, и у меня есть некоторые вызовы Backbone.model.fetch(). У меня есть надлежащие успехи и обратные вызовы ошибок, но есть какой-то код, который я хочу выполнить независимо от того, успешна ли выборка или нет.Есть ли у Backbone наконец-обратный звонок?

В настоящее время я просто копирую общий код. Но я спросил себя, есть ли какой-либо обратный вызов, который выполняется независимо от того, что происходит.

Как и try {} catch {} finally {} из C#. Есть ли что-нибудь подобное?

ответ

2

выборки() возвращает «Отложенный Объект» см: http://api.jquery.com/category/deferred-object/

это не очень нравится, попробуйте {} уловом {}, но вы можете использовать .always() метод, чтобы связать функцию обратного вызова, которая будет выполнена после того, запрос выполнен (независимо от того, успешно ли это или нет)

нравится так.

var doSomething = function() { 
    //will run after fetch() request is finished 
}; 

collection.fetch().always(doSomething); 

аналогичным образом, вместо передачи success или error обратных вызовов для выборки() 's вариант, в общем, рекомендуются цепь .done(), .fail() или .Застет() методу к отложенным методам (выборка, сохранение ... и т. д.)

+0

Тогда я собираюсь сделать это именно так. Благодарю. –

+0

Я узнал, что использование события done() вместо обратного вызова success не передает идентификатор объекта аргументу функции (Backbone-Id). Но мне нужен этот идентификатор в моей функции. –

+0

магистраль передает те же аргументы обратным вызовам независимо от того, определены ли они в хэш-вариантах или через обещания. Не могли бы вы разместить свой код, чтобы предоставить более подробную информацию? –