我在一个 Angular 路由解析器中,想要返回一个 observable。
我需要按顺序订阅多个异步进程:
A => B(a) => C(b)
C 依赖于 B,B 依赖于 A。A 必须完成,然后是 B,然后是 C,但我只希望 C 中的值用于导致路由解析。
我尝试了两种不同的方法:
return A.pipe(
concatMap(a =>
B(a).pipe(
concatMap(b =>
C(b).pipe((c) => c); // also tried of(c)
)
)
)
);
我也试过
return A.pipe(
concatMap(a => {
return B(a).pipe(map(b => {a: a, b: b});
),
concatMap({a, b} => {
return C(b);
)
);
我如何订阅 A,然后是 B,然后是 C ...,然后只从最里面的 observable 中获取值?
如果我在最后一个 concatMap 之后点击,我会得到预期的返回值。但是我的解析器永远不会解析?(或者发出了错误的东西?我真的不能说。)