首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular/rxjs6 -在PUT之前获取

Angular/rxjs6 -在PUT之前获取
EN

Stack Overflow用户
提问于 2018-08-17 18:48:10
回答 2查看 44关注 0票数 1

在我放入(编辑)一些记录之前,我会从数据库中获得新的数据。

服务:

代码语言:javascript
复制
getVotes(): Observable<Vote> {
  return this._http.get<Vote>(url);
}

putVote(choose: string){
 this.getVotes().subscribe(
  result => {
    ...
    return this._http.put<Vote>(url + object).subscribe();
  }
 )
}

现在它可以工作了,但我认为putVote()应该返回Observable<Vote>,那么如何从内部getVotes()返回

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-17 18:53:13

您应该使用switchMap映射来自getVote()的响应,并从http.put()中删除subscribe以从putVote()返回Observable

代码语言:javascript
复制
putVote(choose: string){
 return this.getVotes().pipe(switchMap(
  result => {
    ...
    return this._http.put<Vote>(url + object);
  }
 ))
}
票数 2
EN

Stack Overflow用户

发布于 2018-08-17 18:56:11

你能试试下面的代码吗?

代码语言:javascript
复制
getVotes(): Observable<Vote> {
  return this._http.get<Vote>(url);
}

putVote(choose: string): Observable<Vote> {
 this.getVotes().subscribe(
  result => {
    ...
    return this._http.put<Vote>(url + object).subscribe();
  }
 )
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51893747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档