我目前正在使用forkJoin
等待数组Observable
(s) 之前完成pipe
(英)和tap
(ping).
我注意到如果数组为空,则不会发出任何信号,我什至不能tap
。我该如何解决这种问题?我应该检查数组是否为空吗?
myFirstFunction(...) {
const observables = ...
return forkJoin(observables)
}
mySecondFunction(...) {
return myFirstFunction().pipe(tap(() => ...))
}
那是因为forkJoin
要求所有源 Observables 发出至少一项,当没有源 Observables 时,就没有任何东西可以发出。然而,forkJoin
仍会发送complete
通知,以便您可以使用例如defaultIfEmpty
运算符以确保它始终发出至少一个next
.
forkJoin(observables).pipe(
defaultIfEmpty(null),
).subscribe(...);
Demo: https://stackblitz.com/edit/rxjs-kkd1qa?file=index.ts https://stackblitz.com/edit/rxjs-kkd1qa?file=index.ts
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)