【发布时间】:2019-03-12 07:27:27
【问题描述】:
我刚刚注意到我的 HTTP 调用不再在组件之间共享。 我不确定从哪个版本开始。
已经检查过这个解决方案: Angular2 observable share is not working
这让问题变得更糟(更多的 HTTP 调用),我必须承认我一直很难理解 rxjs。
这是我的服务功能:
getSomeData(): Promise < any >
{
if(this.data) // should keep service from doing extra http for the same request
{
return Promise.resolve(this.data);
}
else
{
return this.http.post(this.createURL('getData',{}),JSON.stringify({}), this.createGetOptions())
.timeout(environment.timeout)
.share()
.map((response: Response) => {
return response;
}).toPromise();
}
}
我从不同的组件中调用它
this.service.getSomeData().then((data: any) =>
{
if (data) {
...
createGetOptions 只是添加像'Content-Type': 'text/plain; charset=UTF-8' 这样的标题
【问题讨论】:
-
您是在组件级别还是模块级别或根级别提供服务?是否所有组件都属于同一个模块?