如何在轮询时不断解决Q承诺



我正在尝试轮询一个端点并使用Q来解决请求。然而,我知道你真的不能用Q来做到这一点,因为一旦承诺得到解决,它就完成了。

有没有一种方法可以让我在进行民意调查的同时使用Q?

我的设置类似于:

class Poller {
  poll() {
    const deferred = Q.defer();
    const promise = $.ajax({ 
      //stuff 
    });
    promise.done((resp) => {
      // this resolves just once, how can I keep resolving
      // on future xhr calls?
      deferred.resolve(resp);
    });
    promise.always(() => {
      setTimeout(() => {
        this.poll.call(this);
      }, 5000)
    })
    return deferred.promise;
  }
}
const poller = new Poller();
poller.poll().then((resp) => {
  // keep trigging updates from polling
})

承诺的全部意义在于它只能解析一次。您要查找的结构是事件

相关内容

  • 没有找到相关文章

最新更新