如何解决Angular中的链可观察RxJ
我使用RxJs 6.6.0和Angular 9。
我有两个函数返回Observable 和Observable 。
所以我习惯于:
funcA().subscribe(x=>{ // do something...});
funcB().subscribe(x=>{// do somethings..});
但是我仅在funcA()完成时才需要调用funcB。我认为concat可能会有所帮助,但我无法获得像这样的两个答案
concat(funcA,funcB).subscribe( (x,y)=>{// do with x
//do with y});
我想这样做是因为funcB的参数取决于funcA的返回。
解决方法
使用rxjs / operators中的switchMap
来实现。
this.sub = funcA()
.pipe(
switchMap(valueFromA => {
// use valueFromA in here.
return funcB()
})
)
.subscribe();
,
尝试通过以下方式实现它:
import { mergeMap } from 'rxjs/operators';
funcA()
.pipe(
mergeMap(valueFromA => {
funcB({value: valueFromA }))
}
)
.subscribe(console.log);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。