假设我有一个Angular 2服务.createTokenfunction从服务器获取登录令牌:
//ANGULAR 2 SERVICE:
//login to application
createToken(email: string, password: string) {
let headers = new Headers({
'Content-Type': 'application/x-www-form-urlencoded'
});
let data = 'username=' + email + '&password=' + password + '&grant_type=password';
this.http.post(this.loginURL, data, { headers: headers })
.map(response => response.json())
.subscribe(
response => {
localStorage.setItem(this.storageTokenKey, response.access_token);
console.log("Token: " + response.access_token);
},
error => {
console.log(error.text());
});
}
Run Code Online (Sandbox Code Playgroud)
我需要用我的令牌做两件事:
为了做到这一点(据我所知,Observables),我的createToken函数必须返回Observable<>允许Component使用它来调用它的.subscribe方法对结果进行一些操作.
不幸的是,正如我从RxJS文档中看到的那样,.subscribe方法不会返回Observable<>
那我该怎么办才能调用.subscribe()方法两次呢?
JB *_*zet 17
您可以使用do()运算符:
对源Observable上的每个发射执行副作用,但返回与源相同的Observable.
return this.http.post(this.loginURL, data, { headers: headers })
.map(response => response.json())
.do(response => {
localStorage.setItem(this.storageTokenKey, response.access_token);
console.log("Token: " + response.access_token);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4707 次 |
| 最近记录: |