我怎样才能只使用最后创建的 promise ,取消(或不使用)所有先前的 promise ?
该函数可以无限次运行。
rx.Observable.fromPromise(listingFactory.list())
.flatMapLatest((e: any) => {
return e;
})
.subscribe((e: any) => {
console.log(e);
});
最佳答案
如果您的 listingFactory.list()
返回一个可观察的 promise ,那么您可以这样写:
listingFactory.list()
.flatMapLatest((promise: any) => {
return promise;
})
.subscribe((resolved_value: any) => {
console.log(resolved_value);
}, (error: any) => {
console.log(error)});
flatMapLatest
将等待最新发出的 promise 解决,丢弃之前的 promise。请注意,这些 promise 不能被“取消”,但它们的解析值(或拒绝)将被忽略。另请注意,flatMapLatest
允许您返回可观察的、 promise 的或可迭代的。在这种特殊情况下,我们可以直接返回 promise ,而无需使用 .fromPromise
运算符。此外,fromPromise
运算符只需要一个 promise 作为参数,而不是它们的列表。
那么listingFactory.list()
的类型是什么?你如何创建你的 promise 来源?我是否误解了您的意图?
关于javascript - RxJS 仅使用最后一个 promise 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34475220/