我试图在下一个Observable执行之前完整地完成一个Observable的工作(这意味着调用Complete函数)。我已经尝试了许多不同的方法,但是最接近的是:
function() {
observableA.subscribe(
(value) => { },
(err) => { },
() => {
createObservableB();
}
);
return observableB; // ????
}
但是我需要从此函数返回createObservableB()的结果。同样,在对observableA中的每个单个值进行完整迭代之前,无法调用createObservableB。
感谢您的帮助!
答案 0 :(得分:4)
您可以尝试last
运算符
obsA.pipe(last(),mergeMap(()=>obsB)).subscribe()
答案 1 :(得分:0)
更多“干净”的解决方案将仅使用concat
,因为它仅在前一个完成时才逐一订阅Observables:
import { concat } from 'rxjs';
concat(observableA, observableB)
.subscribe(...)
如果您想忽略来自observableA
的所有值,则可以在将ignoreElements()
传递到concat
(observableA.pipe(ignoreElements())
)时使用。{p>