Angular$http-在接收响应数据时对其进行处理
Angular $http - process response data while receiving it
我正在构建一个与后端服务器通信的简单UI。UI向服务器发送一个要处理的URL,服务器将返回一个结果列表。
关于结果,每个结果都需要时间来计算,但我仍然希望在UI中显示传入的结果,甚至可能在从服务器接收到结果时对结果集使用ng-repeat
。
问题是,Angular的$http服务返回的promise只能处理成功和失败状态。
我想知道是否有某种"正在进行"的状态,我可以在上面运行回调函数
例如,结果是JSON,包含一组结果:
{
results: [
{prop1: val1, prop2: val2}, // result 1
{prop1: val1, prop2: val2}, // result 2
{prop1: val1, prop2: val2}, // result 3
{prop1: val1, prop2: val2} // result 4
]
}
想象一下,在每个结果准备好发送到响应中之前,需要5-6秒的计算时间。
所以,想要的流量和行为是这样的:
UI:
- 发送包含服务器所需的所有详细信息的
POST
请求 - 在接收到的每一行上,将该行中包含的结果推送到
$scope.results
剩下的将由摘要循环完成,ng-repeat
将确保我在屏幕上看到它们。
因此,我唯一的问题是,在接收响应数据时,如何访问响应数据?
顺便说一句,如果你有任何用另一种方式做的建议,我很乐意听到,只要它很简单。。。它实际上是一个简单的UI,这里不需要任何高级功能。
非常感谢。
这是不可能的,因为HTTP请求的规范没有提供此功能。您要么必须发出多个请求(实现类似"分页"的功能),要么尝试Websockets(有点复杂)
但没有你所描述的"流动"。客户端说"嘿,服务器,给我数据"——然后服务器计算所有需要的数据——然后服务器用整个数据进行原子响应——而不是一步一步。
只有后端支持才能获得多部分结果。我在json块上看到的唯一行为是,它一次给你所有的东西,而且你不会一次得到碎片。但是,如果你可以修改后端来做到这一点,那么你就可以做碎片。
相关文章:
- AJAX调用后使用JavaScript处理数据(CakePHP 2.6.x)
- 如何处理数据视图中项目的鼠标点击
- 为什么我们需要为POST定义res.on('data'..,即使我们不处理数据
- 如何处理数据-Windows 8应用程序
- 替换不处理数据属性值
- 在 Javascript/Phonegap 上处理数据集
- 在这种情况下如何处理数据驱动的输入
- 微风/棱角:如何处理数据
- WebRTC是否为您处理数据包丢失和数据包接收确认等,或者您是否需要为此编写自己的解决方案
- 如何将多行输出传输到另一个 php 文件以处理数据
- encodeURI在二进制字符串上处理数据
- 在 Emscripten'd C++ 程序中处理数据后,如何修复尝试从 Web worker 发回数据时的“内存不足”错
- 防止 WebSQL 数据库中的 SQL 注入?(如何处理数据中的报价?
- 是否有任何方法可以查明localForage/indexedDb是否正在处理数据
- 如何使用AngularJS处理数据的递归呈现
- 使用array.map或array.filter处理数据
- 使用javascript处理数据,并使用Angular.JS以HTML显示
- 使用JSTL处理数据
- Opencpu不能处理数据.表在R
- 我如何处理数据过滤上的一个按钮点击D3.js