2017-07-28 63 views
1

我正在通过angular.io文档和一些其他材料试图加速与角度。有一件事还没有完全沉浸在我的脑海中,那就是观察者。我读这
随着时间的推移,可观察数据会返回数据吗?

Observable帮助我们管理异步数据。您可以将Observables视为一系列项目,随着时间的推移异步到达。 从这里https://www.tektutorialshub.com/angular-http-tutorial-with-rxjs-observables/

我明白sync vs async,但这听起来好像有可能是一些数组项目在不同的时间到达?是这种情况,还是允许调用线程继续执行,而正在被观察的线程允许完成处理,然后在准备好的时候继续它的停止位置?

+0

[RxJava Observable“Iteration”如何工作?](https://stackoverflow.com/questions/29711347/how-does-rxjava-observable-iteration-work) – ChrisG

回答

3

是的,观察物有些物品可能在不同的时间到达。例如,假设您正在观察输入元素值的变化。用户可以键入,暂停和输入更多。所以物品在不同的时间到达。

但是,当使用Observable和Http时,Observable是“完成的”。这意味着它只从后端得到一个“一个”可观察条目的响应。然后它可以将这一个响应映射到一个数据数组中。

例如,假设您通过Http检索一组产品。您将获得整个一组产品作为一个响应对象,然后一个可观察序列中可观察。该响应可以被映射到适当的产品对象数组中。但Observable仍然认为它是“一件”事情。

有意义吗?

+0

DeborahK - 爱你的Angular课程Pluralsight!它是一个很大的帮助 – bitshift

+1

很高兴听到!谢谢!我正在更新它以使用CLI和新版本4.3 HttpClientModule和HttpClient服务。 – DeborahK

2

Observables RxJs可以观察到不同时间到达的物品。您可以观察诸如击键之类的事情,在这些事件发生时物品将继续流入。您也可以观察单个AJAX请求,您只能获得1个响应。

有与观测量做出一些区分:


Hot vs. Cold Observables

总之,用冷水观测,当你订阅了他们,你是触发操作。一个例子是一个AJAX请求。在观察者订阅之前,请求不会触发。


有限观测量:

观测量将或者有限的或无限的。有限的可观察(如AJAX请求)将在完成后调用订阅的完整回调。其他观察者,如观察keyDown事件,只有在取消订阅时才会结束。每次发生keydown事件时,这些将继续调用onNext回调。

相关问题