stDragon
@stDragon
front-end разработчик

Чем можно заменить констукцию кода?

Есть старый проверенный код синхронизации модели backbone с БД

var config = new App.Models.Config(option, data);
config.fetch().then(function () {
  new App.Views.Config({model: config});
}, App.ajaxError);


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

После подключении библиотеки backbone-localstorage, она заменяет sync на свою функцию, которая, как я понял, не возвращает ничего, соответственно я не могу использовать цепной вызов функций через точку.

Какие можете предложить варианты решения?

В общем для решения решил использовать такой вариант кода:
config.once('sync', function(config) {
            new App.Views.Config({model: config})
        });

        config.fetch();
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
Поскольку чтение из localStorage синхронно, нет необходимости использовать промисы или колбэки:
var config = new App.Models.Config(option, data);
config.fetch();
new App.Views.Config({model: config});


Для того, чтобы использовать одновременно ajax и localStorage, нужно обернуть вызов в Promise:
var config = new App.Models.Config(option, data);
Promise.resolve(config.fetch()).then(function () {
  new App.Views.Config({model: config});
}, App.ajaxError);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы