gpt4 book ai didi

javascript - 如何在 rxjs 的 finalize 中正确运行订阅

转载 作者:行者123 更新时间:2023-12-05 04:21:26 24 4
gpt4 key购买 nike

rxjs 的新手。遇到一些让我感到困惑的情况。

场景是点击一个按钮后,会出现一个确认模态询问是或否,然后如果响应是是,则继续调用 switchMap,最后在管道的末端调用订阅,不管结果是否是或否。

我的代码示例:

.sendConfirmation().pipe(
filter(result => result.answer === true),
switchMap(() => //only do stuff if result.answer === true),
finalize(() => doAllTheTime()) //stuff i want to execute whether result.answer is true or false)
.subscribe()

我已经试过了,它按预期工作:

finalize(() => doAllTheTime().subscribe())

但是根据我读到的有关可观察对象的信息,不建议嵌套订阅,所以我很想知道这种情况下的最佳实践。

最佳答案

我会用另一种方式处理这个问题:防止过滤器过滤所有内容。

of(true).pipe(
switchMap((myVal) => {
if (myVal) {
return of('someOperator');
} else {
return of('nothing');
}
}),
switchMap(() => doAllTheTime()))
);

或者,如果您愿意,也可以使用 iif 运算符。

关于javascript - 如何在 rxjs 的 finalize 中正确运行订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74205518/

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