我正在尝试轮询一个端点并使用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
})
承诺的全部意义在于它只能解析一次。您要查找的结构是事件。