连续休息API http调用angular 4

时间:2017-07-26 08:51:09

标签: angular rest http

我在这里寻找答案,但没有找到,所以我会继续尝试尽可能清楚地解释我的情况,希望我得到一个。

以下是这种情况:我正在构建一个消耗其余API后端的角度4 SPA。 在我的一个组件中,我必须从后端(从不同的方法)获取几组数据,并且我需要拥有所有这些不同的数据集来在我的组件中显示图表。

如果我只是在我的Init方法中进行连续的http调用,然后调用我的 process_data 方法,则angular在调用处理方法之前不会等待所有的http响应。因此,当所有需要的数据不一定存在时,调用该方法,这可能导致错误。

我现在的解决方案:我暂时实施的修复方法如下:

  • 我发了第一个http请求,我订阅了。
  • 在此订阅中,我发出了第二个http请求,我也订阅了
  • 等每个后续的http请求
  • 在最后的 .subscribe()中,我调用了我的处理方法。

结果是一个很大的Init方法,因为所有嵌套的http请求都很难读取/调试。 因此修复工作但它很难以重复使用,这是一个严重的问题,因为我正在为公司开发这个。这让我想到了......

问题:是否有更好的(更清洁/标准/良好做法)方法来实现相同的结果?

TL; DR:在继续之前,有没有一种好方法可以连续发出几个http请求并等待所有请求完成(并等待响应)?

笔记:虽然我正在为一家公司开发这个SPA,但我只是一名实习生(因此,仍然在学校,仍在学习绳索)。除了不是真正的工程师之外,我也是角色和网络开发的新手。当然,如果我的问题的答案显而易见,我道歉。

其次,英语不是我的母语,所以我也为我的帖子中任何与英语有关的错误道歉。

我事先感谢你们的答案。

1 个答案:

答案 0 :(得分:3)

我相信您会在Flatmaps或此精彩教程中找到的其他解决方案中找到您要找的内容。

Flatmaps将帮助您将多个HTTP请求变为线性。

引用官方文件:

  

将Observable发出的物品转换为Observables,然后将这些物品的排放量变为单个Observable