目前,有一种情况是多个组件使用共享服务中的方法.此方法对端点进行HTTP调用,该端点始终具有相同的响应并返回Observable.是否可以与所有订阅者共享第一个响应以防止重复的HTTP请求?
以下是上述方案的简化版本:
class SharedService {
constructor(private http: HttpClient) {}
getSomeData(): Observable<any> {
return this.http.get<any>('some/endpoint');
}
}
class Component1 {
constructor(private sharedService: SharedService) {
this.sharedService.getSomeData().subscribe(
() => console.log('do something...')
);
}
}
class Component2 {
constructor(private sharedService: SharedService) {
this.sharedService.getSomeData().subscribe(
() => console.log('do something different...')
);
}
}
Run Code Online (Sandbox Code Playgroud) 目前实现了以下代码片段,这只是一个基本的 GET 调用:
$http.get(url,
{
params: ...,
responseType: 'json'
}
).then(
function success(response) {
...
},
function failure(reason) {
...
}
);
Run Code Online (Sandbox Code Playgroud)
我想扩展它以支持,Transfer-Encoding: chunked以便我可以在结果进入时逐步将结果加载到屏幕上。目前是否可以使用$http(angular@1.5.11)?