【发布时间】:2021-06-14 03:45:33
【问题描述】:
我有两个 http 请求,其中第二个(日志请求)应该在第一个(订单请求)发出一个值后订阅,我做了一些逻辑,不应该被日志请求阻止 忽略日志请求的结果。
据我所知,点击是
用于执行副作用
https://rxjs.dev/api/operators/tap
并且由于我假设 Log 请求及其响应是 Order 请求的副作用,所以在 tap 内订阅是不好的做法吗?有没有更流畅和 RxJS 的方式来处理这个问题?
const order = of('2- created order').pipe(
delay(100),
tap(console.log)
);
const log = of('4- logged info to log server').pipe(
delay(500),
tap(console.log)
);
console.log('1- started creating order');
order
.pipe(tap(() => log.subscribe()))
.subscribe(() => console.log("3- didn't wait for log server"));
【问题讨论】:
-
一般是的,因为没有办法取消订阅。但是,在您的情况下,您似乎甚至不想取消订阅,也不关心结果,您甚至可能不希望它阻止
complete通知(就像ignoreElements()运营商那样)所以我猜猜这是一个例外,它很好。
标签: javascript rxjs