现在我有一个解析器调用标准服务并返回一个 Observable:
return this.someService.getData()
.map(data=> data.json())
我想用 ngrx 效果替换它并存储。当解析器运行时,我想调度被效果拦截的requestAction,这会产生http请求。返回数据后,我将 dataReceivedAction 与数据一起作为有效负载发送。
基本上我想在解析器中调度一个动作并等到新数据成为存储的一部分。我尝试这样做:
return Observable.combineLatest(
Observable.of(
this.store.dispatch(new requestAction())
),
this.store.select(store => store.dataIWaitFor),
(dispatchedAction, dataArrived) => dataArrived
)
.skip(1)
它不起作用,我的意思是解析器不会渲染组件,但是当我在每个返回的 Observables 结束时添加
.do(data => console.log(data))
记录相同的数据。我做错了什么?