【发布时间】:2016-04-06 04:17:52
【问题描述】:
我正在使用 Angular2 和 rxjs。
我有一个名为 login() 的操作。这将使用 http.post 请求将身份验证详细信息发送到服务器,然后将收到一个令牌。
它需要读取结果,如果成功接收到令牌,它将执行一些操作来验证令牌并对其进行解码,如果一切正常,则它将用户名从令牌发送到服务器,并带有http.get 并检索用户的详细信息。
我希望将以上所有内容作为一个 Observable 返回,但我对如何使用 RxJS 方式构建应该一个接一个发生的两个操作感到头疼。
我不认为订阅第一个操作然后在第一个操作中调用第二个操作是“正确”的方式,因为那你如何捕获第一个操作中的失败。
这样的?
this.http.post('http://localhost/auth/token', creds, {
headers: headers
})
.map(res => res.json())
.do(
// validate token
// decode token
)
.thenDo(
// get user details
this.http.get(url, options)
.map(res => res.json())
.do(
//save user and token in localStorage
)
)
【问题讨论】:
标签: rxjs observable chaining