Login 可观察到的增加了一倍

Login 可观察到的增加了一倍,login,typescript,rxjs,Login,Typescript,Rxjs,我是Rxjs的新手,但现在我遇到了问题: 我有以下代码: const requestStream = Observable.of({ url: siteLocation + 'login', body: { personnelNumber : personnelNumber, password : password } }); requestStream.subscribe(response => { console.log

我是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;
});
为什么flatMap会将我的请求流加倍,即使这是缩进的,为什么生成的json流又是正常的

问题是,我正在用这个代码段登录我的API,我登录了两次,因此第二次登录时,我的第一个authToken无效,我得到了一个新的authToken。但是因为我只保存了第一个,所以我保存的令牌永远无效

我在Chrome中检查了请求和响应,它们都是正确的。

我发现了问题

问题是我订阅了json流。当我使用map时(因为我想重用流),一切都正常。 我认为这是一个错误,我会报告它

Hello
Hello2
Hello2
Hello3