2016-09-15 11 views
0

При переходе на маршрут, сделайте api-вызов, дождитесь ответа и как только вы получите ответ, подождите 5 секунд и снова вызовите тот же api и продолжайте повторять это, пока я не выйду из маршрута.Ember: Опросите api каждые 5 секунд, но после получения ответа на предыдущий вызов

Итак, поймайте здесь, чтобы подождать 5 секунд после получения ответа и снова выполните один и тот же вызов api. Как я могу достичь этого в ember? Я опробовал опрос, как показано ниже, но опроса не хватает моего требования.

Ember.Route.extend({ 
    model: function() { 
    var interval = 1000 * 60; 
    Ember.run.later(this, function() { 
     this.model().then(function(json) { 
     this.controller.set('model', json); 
     }.bind(this)); 
    }, interval); 

    return Ember.$.getJSON('some api request'); 
    }, 

ответ

0

Попробуйте это:

Ember.Route.extend({ 
    model: function() { 
    var interval = 1000 * 60; 
    var five = function() { 
     this.model().then(function(json) { 
     this.controller.set('model', json); 
     setTimeout(five, 5000); 
     }.bind(this)); 
    }; 
    Ember.run.later(this, five, interval); 
    return Ember.$.getJSON('some api request'); 
    }, 
+0

благодаря Потренируемся и получить обратно. – user3475737

+0

в случае, если я должен очистить таймер? – user3475737

+0

Попробуйте 'if (some_var) setTimeout (пять, 5000);' –