我在制作嵌套的Observable调用时遇到了一些麻烦.我的意思是调用一个http服务来检索用户,然后从用户获取id以进行另一个http调用,最后在屏幕上呈现结果.
1)HTTP GET 1:获取用户
2)HTTP GET 2:获取用户的首选项,将唯一标识符作为参数传递
这转换为组件中的以下代码Blah.ts:
版本1 - 此代码不显示任何内容
ngOnInit() {
this.userService.getUser()
.flatMap(u => {
this.user = u; // save the user
return Observable.of(u); // pass on the Observable
})
.flatMap(u => this.userService.getPreferences(this.user.username)) // get the preferences for this user
.map(p => {
this.preferences = p; // save the preferences
});
}
Run Code Online (Sandbox Code Playgroud)
版本2 - 此代码有效,但对我来说似乎是错误的方法:
this.userService.getUser().subscribe(u => {
this.user = u;
this.userService.getPreferences(this.user.username).subscribe(prefs => {
this.preferences = prefs;
});
});
Run Code Online (Sandbox Code Playgroud)
这是模板:
<h3>User</h3>
<div class="row col-md-12">
<div class="col-md-6"> …Run Code Online (Sandbox Code Playgroud)