@faragly

Как ловить promise.state() === 'pending' в $.Deferred() для отображения анимации загрузки?

Здравствуйте! Изучаю deferred объекты в jquery и возникли некоторые вопросы.
jQuery(document).ready(function($) {
  var app = new App({delay: 3000}),
    promises = [];

  promises.push(app.read());
  $(document).on('click', '#create', function(e) {
    promises.push(app.create(e));
  });
  $(document).on('click', 'button[name=remove]', function(e){
    promises.push(app.remove(e));
  });

  $.when.apply($, promises).then(function() {
    return console.log('Promises Ary is Done');
  });
});

app.read()/.create()/.remove() возвращают d.promise()
App.prototype.create = function(e) {
  var d = $.Deferred();
  setTimeout(function() {
    // тут код
    d.resolve();
  }, this.options.delay);
  return d.promise();
};

Вопрос такой - как отловить состояние pending чтобы отобразить какой то див с анимацией (аналог watch из ангуляра). Нужно чтобы при вызове функции появилась анимация, в конце исчезла.
  • Вопрос задан
  • 363 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Можно использовать notify.
Но вообще, отображанием таких вещей должен рулить контроллер - при старте отображать одно view, а в done - другое.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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