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