【发布时间】:2017-07-12 09:32:31
【问题描述】:
我有以下问题: 我需要发送 POST 请求以从 oAuth 获取令牌。后来我想通过另一个服务创建用户上下文。但是我仍然需要保留 Observable,因为我想对组件的响应做出反应。
这是正确的做法吗?
login(username, password): Observable<any> {
let response$ = this._http.post(params)
.map((response: Response) => response.json());
response$.subscribe(v => this._userService.doSmth());
return response$;
}
编辑:
我根据@Maximus 的响应找到了另一种方法。没错——我只想提出一个要求。所以我写了这样的东西:
let response$ = this._http.post(data)
.map((response: Response) => response.json());
let user$ = new Subject<User>();
response$.subscribe(v =>
this._userService.createNewSession(v) // returns observable
.subscribe(u => user$.next(u))
);
return user$.asObservable();
这样好吗?
【问题讨论】:
-
但我仍然需要保留 Observable,因为我想对组件的响应做出反应。 - 为什么?你打算用它做什么?
-
我想要一个组件对“用户记录的事件”做出反应。
标签: angular rxjs reactive-programming