【发布时间】:2017-07-26 17:02:51
【问题描述】:
我在这里寻找答案,但没有找到答案,所以我会继续尝试尽可能清楚地解释我的情况,希望我能得到答案。
情况如下:我正在构建一个使用 REST API 后端的 Angular 4 SPA。 在我的一个组件中,我必须从后端(通过不同的方法)获取多组数据,并且我需要拥有所有这些不同的数据集才能在我的组件中显示图表。
如果我只是在我的 Init 方法中进行连续的 http 调用,然后调用我的 process_data 方法,那么 Angular 在调用处理方法之前不会等待所有 http 响应。因此,当所有需要的数据不一定都存在时调用该方法,这可能会导致错误。
我现在的解决方案:我暂时实施的解决方案如下:
- 我发出了第一个 http 请求,我订阅了该请求。
- 在此订阅中,我发出了第二个 http 请求,我也订阅了该请求
- 对于每个后续的 http 请求,依此类推
- 在最后一个 .subscribe() 我调用了我的处理方法。
结果是一个很大的 Init 方法,由于所有嵌套的 http 请求,它很难读取/调试。 所以修复工作但它很丑陋并且难以重用,这是一个严重的问题,因为我正在为一家公司开发它。这让我想到...
问题:是否有更好(更清洁/标准/良好实践)的方法来实现相同的结果?
TL;DR : 有没有一种好方法可以发出多个连续的 http 请求并等待所有请求都完成(并等待响应),然后再继续?
注释:虽然我正在为一家公司开发此 SPA,但我只是一名实习生(因此,仍在学校,仍在学习中)。除了不是真正的工程师之外,我对 Angular 和 Web 开发也很陌生。当然,如果我的问题的答案很明显,我深表歉意。
其次,英语不是我的母语,所以我也为我的帖子中与英语相关的错误道歉。
提前感谢大家的回答。
【问题讨论】: