我有两个级别的可观察对象,代码如下所示:
function level_1() {
...
level_2(params).subscribe((value) => {
if (value === something) {
action_1();
}
else { // others
action_2();
}
});
}
function level_2(params) : Observable<any> {
...
another_observable.subscribe((v) => {
if (a_condition) {
return of(something); // this is reached, but the observable is not captured
}
else {
return of (others);
}
});
return of(others); // this is captured
}
现在的问题是,在三个“返回”中,只有第三个在级别_1中被捕获,但第一个在级别_2中被到达,但在级别_1中没有被捕获。我认为observable将继续倾听,我缺少什么吗?
1条答案
按热度按时间mnowg1ta1#
您可以从
level_2
,然后可以在中订阅level_1
:…或者你可以使用
map
而不是switchMap
如果您只需要切换到一个值而不是另一个可观察值: