当我们在angular2中使用observable时,假设我们发出一个返回一个observable的get请求。
这个observable是否自动发出get请求,或者当我们调用它时订阅是否发出get请求
示例:
服务器是否在此处调用? this.http.get(requestUrl).map(this.validateResponse).map(this.parseJson);
或此处(订阅后)
this.http.get(requestUrl).map(this.validateResponse).map(this.parseJson).subscribe(result=> console.log(result));
答案 0 :(得分:1)
Observable默认是冷的(没有订阅 - 没有请求执行)。 使用.share()运算符使Observable变热。 这里描述了:https://auth0.com/blog/making-use-of-rxjs-angular/
答案 1 :(得分:1)
Observable
只是我们想要观察的数据(异步调用,事件......)的类型/包装(获取数据,对事件作出反应,......)。
所以,如果你没有subscribe
到changes
,就没有任何事情发生。
使用http.get
时,您必须订阅才能获取数据。
您可以查看这些文章,以便对Observables有一个很好的概述:https://angular-2-training-book.rangle.io/handout/observables/using_observables.html