0
IM相當新的Rxjs,但現在我有問題: 我有這樣的代碼:可觀察得到加倍
const requestStream = Observable.of({
url: siteLocation + 'login',
body: {
personnelNumber : personnelNumber,
password : password
}
});
requestStream.subscribe(response => {
console.log("Hello")
});
const responseStream : Observable<Response> = requestStream
.flatMap(request => {
console.log("Hello2");
return this.http.post(request.url, JSON.stringify(request.body), {
headers: this.getHeaders()
});
});
const jsonStream = responseStream.map(response => response.json());
jsonStream.subscribe(json => {
console.log("Hello3");
this.authToken = json.authToken;
});
但我發現了這樣的輸出:
Hello
Hello2
Hello2
Hello3
爲什麼會出現flatMap雙倍我的請求流,即使這是縮進,爲什麼生成的json流再次正常?
問題是,我使用此代碼段將數據登錄到我的API中,並且我登錄了兩次,因此第二次登錄時,我的第一個authToken無效,並且我得到一個新的。但是因爲我只保存了第一個,所以我保存的標記永遠無效。
我在Chrome中檢查了請求和響應,它們都是正確的。