小编ego*_*hin的帖子

Angular 4.一系列http请求被取消

当我尝试通过Angular 4中的http服务发出多个http请求时,之前的请求会在Chrome中被取消(但它们会到达服务器).例:

const obs1 = this.http.get(`${API_URL}/transitions`);
const obs2 = this.http.get(`${API_URL}/states`);
obs1.subscribe();  
obs2.subscribe(); // this will cancel obs1's http request
Run Code Online (Sandbox Code Playgroud)

但如果我更换.subscribe().publish().connect()上面的,它将正常工作(没有取消)

const obs1 = this.http.get(`${API_URL}/transitions`);
const obs2 = this.http.get(`${API_URL}/states`);
obs1.publish().connect();
obs2.publish().connect();
Run Code Online (Sandbox Code Playgroud)

或者,如果我将两个合并Observables为一个然后像上面那样订阅,它也将正常工作

const obs1 = this.http.get(`${API_URL}/transitions`);
const obs2 = this.http.get(`${API_URL}/states`);
Observable.merge(obs1, obs2).subscribe()
Run Code Online (Sandbox Code Playgroud)

为什么我会面对这种行为?我需要了解,而不是绕过.如何在合并,分叉等的情况下进行一系列请求?

http rxjs angular

16
推荐指数
3
解决办法
1万
查看次数

标签 统计

angular ×1

http ×1

rxjs ×1