如何在轮询时继续解决 Q 承诺
how to keep resolving Q promises when polling
我正在尝试轮询端点并使用 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
})
承诺的全部意义在于它只能解决一次。您正在查找的结构是一个 事件 .
我正在尝试轮询端点并使用 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
})
承诺的全部意义在于它只能解决一次。您正在查找的结构是一个 事件 .