什么是可观察的,观察者并订阅角度?

时间:2018-07-25 13:49:02

标签: angular rxjs angular6 rxjs5

我正在学习角度知识,我对这些可观察的,观察者和订阅感到困惑 事情。所以请解释。

4 个答案:

答案 0 :(得分:11)

这是一个简单的视觉效果,可以看出两者之间的区别:

enter image description here

如上所示... 可观察是事件或数据流。它们通常是从Angular方法返回的,例如http.getmyinputBox.valueChanges

订阅“开始”可观察的视频流。没有订阅(或异步管道),流将不会开始发出值。这类似于订阅报纸或杂志...在订阅之前,您不会开始得到它们。

subscribe方法需要一个观察者。观察者有三种方法:

  • 每次从可观察对象发射物品时要处理的方法。

  • 处理发生的任何错误的方法。

  • 观察者完成时清除所有内容的方法。在使用Angular的可观察对象时,很少使用最后一个。

希望这会有所帮助。

(而且我同意...试图通过文档的树木看森林是一个很大的挑战。我知道他们正在努力改善它们。)

答案 1 :(得分:1)

以下是一些关键点:

1)定义:“可观察和观察者”是从发布者到订阅者传递消息的一种模式。
2)功能流程:

  • 可观察的已创建

  • 观察者订阅Observable

  • Observable可以将消息传递给观察者
  • 每次,当可观察对象传递的不是消息时,观察者就会收到消息

3)实时使用Observable和Observer

  • 收到AJAX的回复
  • 在客户端(浏览器)中执行大型任务时

答案 2 :(得分:1)

Observable 可以被认为是各种数据源(例如:(userInputs)Events、HttpRequests 等)。

在这里创建我们的自定义 observable。

    var observable = Observable.create((observer: any)=>{
       observer.next("Hii")
       observer.next("how are you")
       observer.complete()
    observer.next("This will not send to observer")
});
  • next() 用于向观察者发送值
  • complete() 表示通知 observable 完成。

观察者基本上是订阅 Observable 的人。

observable.subscribe(
    (data: any) => console.log(data), // for handling data
    (error: any) => console.log(error), // for handling error
    () => console.log('completed'); // for handling completion

);

在这里你可以了解更多关于 Observable 的信息 http://reactivex.io/documentation/observable.html

答案 3 :(得分:0)

尝试用一个非常简单的例子来解释:-

  1. Observable 就像其他人的 YouTube 频道。 ((它不时上传新的视频(数据),所以它是你的数据源))

  2. 您的 YouTube 帐户是观察者

  3. 您的 youtube 帐户(观察者)只能收到有关其他人的 youtube 频道(观察者)是否上传了新视频(有新的数据)或进行直播(新活动),前提是您订阅了该频道

(Observer 订阅 Observable 以监听新数据/任何事件)

其中observable是数据源,subscribe是方法/函数,Observer一般在你这边