我有以下这段代码,它从路径中获取信息,初始化一个可观察对象,并对该可观察对象进行一些操作:
export class ThemesEditComponent implements OnInit {
themeId: string;
theme$: Observable<Theme>;
theme: Theme;
ngOnInit() {
this.route.paramMap
.subscribe(
(param: any) => {
this.themeId = param.get('themeId');
this.theme$ = this.sectionStoreService.themes
.pipe(
map(themes => themes.find(item => item._id === this.themeId))
);
this.theme$
.subscribe(
theme => {
this.theme = theme;
});
this.setFormValue(this.theme);
});
}
因为此代码中有两个订阅,所以我想知道是否有编写它的正确方法。我尝试使用switchMap运算符执行此操作,但未成功。我想我没有好的方法。
答案 0 :(得分:1)
您可以使用 try {
InputStream io = TestngListener.sftp.get(path);
rd = new BufferedReader(new InputStreamReader(io));
} catch (Exception e) {
e.printStackTrace();
}
。我认为{"a": "value1", "b": "value2", "c": "value3"}
工作不正确。因为它是在设置mergeMap
之前触发的。您可以尝试以下方法:
this.setFormValue