如何解决如何跳过订阅结果?
我有一个发出数据的流 changes$:
interface Data {
id: number,prop: string
}
这个流被另一个发出 http 请求的流切换。
最后我订阅了回复:
.subscribe((response =>apply() );
如果在从上次请求获得响应之前向初始流发送了新数据,如何不调用 apply() 方法?
因为尽管发送了 http 请求,但数据已过时,导致源流更改 $ 发出新数据。
解决方法
如果我理解正确的问题,你正在寻找的是这样的
- 该过程从
changes$
发出数据类型的值开始 - 一旦
change$
发出 Data 实例,就会触发 http 请求,可能使用该 Data 实例作为参数,但这在这种情况下不相关 - 一旦收到 http 请求的响应,就会执行
apply
函数,可能会将收到的响应作为参数,但这又无关紧要 - 但是,如果在收到来自 http 的响应之前,
change$
发出了另一个 Data 实例,那么前一个 http 请求将被取消,我们只需在调用 {{1} 之前等待第二个请求的结果}}
如果这一切都是真的,那么您正在寻找的运营商是 apply
,它取消订阅任何先前对其内部 observable 的订阅(即在这种情况下取消任何 http 请求)并开始新的订阅任何时候它收到来自上游 Observable 的新通知。
代码看起来像这样
switchMap
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。