我是新手。我正在尝试一次发布并获取数据。我正在使用map
并在组件中订阅外部可观察对象时订阅可观察对象。
add(data) {
return this.postModel(`pathHere`, data)
.pipe(map((resp) => {
if(resp.models){
return this.getRoomById(resp.models.id).subscribe();
}
}));
}
答案 0 :(得分:2)
我想您需要使用flatMap
而不是map
add(data) {
return this.postModel(`pathHere`, data)
.pipe(flatMap((resp) => {
if(resp.models){
return this.getRoomById(resp.models.id);
}
}));
}
答案 1 :(得分:2)
add(data) {
return this.postModel(`pathHere`, data)
.pipe(
switchMap((resp) => {
if (resp.models) {
return this.getRoomById(resp.models.id);
}
return of(resp.models);
})
);
}
您可以使用switchMap
发出另一个Observable
。
使用if
语句检查resp.models
时,必须处理resp.models
不真实的情况。