在加载组件之前解析id

时间:2017-12-14 16:27:05

标签: angular rxjs es6-promise

使用: Angular 5

在我们的应用程序中,我们有storeId用于获取商店特定数据。

在对我们的后端进行storeId调用时,会使用此http。 有时我们将它作为URL路由 endpoint.dev/stores/10 ,有时作为查询参数 endpoint.dev?storeId=1

所以用ex:storeService.storeId

简单地调用它会很好

用户可以通过更改地址授权等来切换商店 ...

我当前解决方案(redux store)的问题:

  1. 启动时,应用会设置默认storeId
  2. 用户授权时,我们会根据http调用更改状态以使用其他storeId。
  3. 授权后,执行重定向并开始加载新页面。
  4. 如果新页面在storeId状态发生变化之前开始渲染,我们将收到错误的http响应。

    我们如何确保呈现的页面仅使用成员storeId执行http调用?

1 个答案:

答案 0 :(得分:0)

  

我们如何确保呈现的页面仅使用成员storeId执行http调用?

在得到回复之前不要离开。因此,例如,在您的授权中,您执行此操作:

this.api.authorize()
  .do(storeId => this.storeService.setStoreId(storeId))
  .subscribe(() => this.router.navigate(...));

这当然是伪代码,因为你没有共享任何代码,所以有很多假设;无论哪种方式,它的要点是你只是在实际更新ID之后将路由链接到。