我和angular2应用程序一起运行ngrx store,其中包含处理http请求的效果。适用于简单直接的简单http请求:REQUEST - > SUCCESS / FAIL操作结束修改我的商店状态。
我现在要做的是先拨打一个电话,这将给我一系列人员,对于每个返回的人,我需要进行一次http调用以从中获取一些额外的数据。
我想要实现的是获取人员,在我获得人员后立即获取额外数据,然后使用完整数据触发“成功”操作。
这是简单的人请求的原始效果。工作正常:
1.0.0.RELEASE
这是我尝试为我收到的每个经理做一个http请求。使用forkJoin并行执行“详细信息”调用我从第一次调用获得的n个管理器。
在返回行@Effect() requestManagers = this.action$
.ofType(ContributionActions.FETCH_MANAGERS_REQUEST)
.map(toPayload)
.switchMap(payload => this.contributionsService.requestManagers()
.map(res => this.contributionActions.fetchManagersReceive(res.json()))
.catch(err =>
this.errorHandler.handleError(err, 'There was an error retrieving your managers', this.contributionActions.fetchManagersFailed())
)
);
之前我可以打印变量“管理器”,并使用原始数据和“详细信息”调用中的额外数据对其进行格式化,以便按预期工作。
但是在发送“接收”操作return this.contributionActions.fetchManagersReceive(managers);
时,我收到以下错误:
this.contributionActions.fetchManagersReceive(managers);
这是我到目前为止试图获得预期结果的方法,任何关于如何使这项工作的想法都将受到赞赏。
我还想知道是否有更好的方法来获得我想要的相同结果,因为我很确定有更高效和漂亮的方法来做同样的事情。
提前致谢。