我正在尝试使用传输状态api来保存api调用的值,以便避免重复的请求。
我目前有我的代码:
const STATE_KEY_RESPONSES = makeStateKey(url);
if (isPlatformBrowser(this.platformId) && this.state.hasKey(STATE_KEY_RESPONSES)) {
return new Promise(() => this.state.get(STATE_KEY_RESPONSES, null));
} else {
return this.model.hcGet(url, options)
.toPromise()
.then((response) => {
if (isPlatformServer(this.platformId)) {
this.state.set(STATE_KEY_RESPONSES, response);
}
return response;
})
.catch(this.handleError);
}
但是,无论何时(每次我调用console.log(this.state)
时,都没有将对象存储到要检索的状态(this.state.get)。
我注意到,如果我从isPlatformServer(this.platformId)中取出this.state.set,它将把我的密钥存储在状态中
.. 我已经尝试过/已经实施的东西(一切):
*ServerTransferStateModule,
*ModuleMapLoaderModule,
*BrowserTransferStateModule,
*TransferHttpCacheModule,
* BrowserModule.withServerTransition({
appId: "my-app-id",
}),
*providers: [{
provide: HTTP_INTERCEPTORS,
useClass: UniversalInterceptor,
/* Multi is important or you will delete all the other interceptors */
multi: true,
}],
我不知道该怎么办,请求也发生在客户端而不是服务器端