我是Angular的新手,我想弄清楚在什么情况下最好使用rxjs / Observables而不是仅使用Http get / post调用。
据我所读,在需要以推送方式而不是Javascript中的拉动方式延迟加载数据时,最好使用Observable。另外,似乎数据将以未预定义的任何数量进行批处理。作为Observables的用例,我唯一能想到的就是使用Web套接字和诸如新闻提要之类的东西或诸如此类的Facebook feed之类的东西,但是我已经看到了一些使用Observables进行HTTP GET调用的示例也一样我不确定为什么需要这样做。
如果我只能执行http.get,为什么需要执行http.get()。subscribe?
答案 0 :(得分:3)
问题“为什么使用HTTP上的Observable” 依赖于错误的假设,即它们是做同一件事的替代方法。是苹果和橘子;可观察对象提供了一种进行和处理HTTP操作的方法(一种工具)。这有点像问“为什么要在碗米饭上用叉子?” 叉子只是帮助处理米饭的工具;它们不是/或选项。
我认为,更大的问题是:
“在HTTP调用中,可观察流有什么用,我所需要的只是在需要时一次获得我的数据?”
这是一个更有趣的问题。的确,在大多数简单情况下,基于基本Promise的方法(例如本机fetch API
)就足够了,但是它也有缺点。我现在可以想到的Observables的最大优点是:
答案 1 :(得分:0)
只需使用Angular HttpClient服务,您将使用使用RxJs observables构建的http客户端。
您可以将其注入您的服务
constructor(http: HttpClient)
并像使用它
this.http.get('URL to your endpoint');
您需要订阅以触发http请求。在观察者订阅可观察对象之前,创建冷可观察对象不会有任何数据流。
启动Angular时会尽可能多地了解RxJ,Angular是RxJ的强大构建,您应该在学习Angular之前先学习RxJ。