Ember:每5秒轮询一次api,但在收到前一个电话的响应后

时间:2016-09-15 07:52:37

标签: javascript ember.js polling

转换到路线时,拨打api电话,等待响应,一旦得到响应,等待5秒再次呼叫相同的api并继续重复此操作,直到我退出路线。

所以这里的问题是在获得响应后等待5秒,然后再次执行相同的api调用。 我如何在余烬中实现这一目标? 我尝试过如下的民意调查,但民意调查并不足以满足我的要求。

 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');
  },

1 个答案:

答案 0 :(得分: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');
  },