gpt4 book ai didi

javascript - RxJS 仅使用最后一个 promise 的响应

转载 作者:行者123 更新时间:2023-11-30 00:16:36 24 4
gpt4 key购买 nike

我怎样才能只使用最后创建的 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com