Angular HttpClient 流

fis*_*one 7 ajax xmlhttprequest angular angular-httpclient

我正在为 Cordova/iOS 开发一个 Angular 应用程序。我从后端服务获得了大约 100 MB 的数据,这似乎让 iOS 的网络视图 (WKWebView) 崩溃了。至少我没有遇到返回较少数据的测试后端崩溃。

数据将存储在 IndexedDB 中,因此没有理由用所有这些数据填充 RAM。

所以我的想法是将响应直接流式传输到 IndexedDB 中。有可用的库即使使用 JSON 也可以做到这一点,例如Oboe.jsJSONStream

AngularHttpClient以大字符串或 JSON 对象的形式返回整个响应,这不是我想要的。有没有一种方法可以逐步处理类似于此的响应:https : //stackoverflow.com/a/18964123/395879

IDK*_*eal 0

在 Angular 中,目前还没有流数据的方法。

您可以获得的最接近的是使用websockets.

正确的工作流程将是:

  1. 在应用程序的服务器端添加 websocket 功能。
  2. 创建一个 Angular 服务来管理 Websocket 的连接和断开连接。
  3. 确保您的 Angular 服务公开可订阅的可观察对象。这将提供您正在寻找的流媒体感觉。
  4. 订阅服务提供的数据流,并在发出新值时更新您的数据/视图。