【发布时间】:2020-03-17 10:13:03
【问题描述】:
有一个从端点获取数据的可观察对象:
this.get().pipe(
filter(item => item.id = providedId)
).subscribe((data) => {
specialFunction(data);
})
当 RxJS 的 filter 方法找到一个 item 时,它会触发 subscribe 并且一切都按预期工作。 但是当过滤器找不到项目时,订阅不会被触发。但我也想处理这种情况。我试过用完整的:
this.get().pipe(
filter(item => item.id = providedId)
).subscribe({
next: (data) => {
specialFunction(data);
},
complete: (data) => {
specialFunction();
}
})
但是,如果存在数据,则 specialFunction 会被调用两次:一次带有数据,一次来自已完成的函数。
如何处理 observable 以便我可以调用一个 specialFunction 一次,无论是否有数据,如果有数据则包含数据?
【问题讨论】:
-
仅在
complete上处理它并使用if (data) { ... }启动您的处理程序? -
这是一个想法,但是如何从 next 到 complete 很好地传递数据?
标签: javascript angular typescript rxjs frontend