Angular 5传输状态API

时间:2018-07-09 13:10:30

标签: javascript angular angular-universal

我正在尝试使用传输状态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,
}],

我不知道该怎么办,请求也发生在客户端而不是服务器端

0 个答案:

没有答案