原文: http://reactivex.io/rxjs/manu...

什么是Observer? 观察者(Observer)是Observable流推送数据的用户。观察者们(Observers)就是一组callback函数的集合,监听着每一个Observable流推送出的不同类型的通知,包括:next,errorcomplete

以下是一个经典的观察者对象:


var observer = {next: x => console.log('Observer got a next value: ' + x),error: err => console.error('Observer got an error: ' + err),complete: () => console.log('Observer got a complete notification'),
};

为了使用观察者,需要让他订阅一个Observable流:


observable.subscribe(observer);

观察者是一个包含三个回调函数的对象,每一个函数都时刻准备接收来自Observable流推送的不同消息。

Observer在RxJS中是被优待的。如果没有为某个类型的通知提供callback,Observable流的执行过程仍然会照常进行,但是响应的通知将会被忽略,因为观察者没有提供相应的callback来接收。

下面是一个Observer没有提供complete响应(callback)的例子:

var observer = {next: x => console.log('Observer got a next value: ' + x),error: err => console.error('Observer got an error: ' + err),
};

订阅一个Observable流的时候,你也可以只提供一个callback函数作为参数,而不用完整提供一个包含三个回调的对象,就像下面的例子:

observable.subscribe(x => console.log('Observer got a next value: ' + x));

observable.subscribe()内部,将会创建一个观察者对象(Observer object),并将第一个参数提供的callback作为next通知的响应函数。接受三个类型通知的callback也可以分别以参数的形式提供:


observable.subscribe(x => console.log('Observer got a next value: ' + x),err => console.error('Observer got an error: ' + err),() => console.log('Observer got a complete notification')
);

[译]RxJS文档04——Observer 观察者相关推荐

  1. 【Qt】DOM创建和操作XML文档

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. 创建XML文档 04. 读取XML文档 05. 增加XML节点 06. 查找.删除.更新XML文档 07. 附录 01. ...

  2. JS-DOM-节点-获取元素-文档结构-元素的属性

    JS-DOM-节点-获取元素-文档结构-元素的属性 1 回顾 1.1 内置构造函数 Function Function 的实例的属性和方法:lengthcall()applay()bind() 1.2 ...

  3. 文档化Python代码完全指南(翻译)

    阅读代码比编写代码更多,有良好丰富文档的项目会吸引更多人使用和参与开发贡献.本教程旨在详细阐述如何将 Python 代码实现"文档化",介绍了注释用法.类型提示.文档字符串.在项目 ...

  4. Angular RxJS入门笔记 (Observable可观察对象、Subscribe订阅、Observer观察者、Subscription对象)

    RxJS入门笔记,关于Observable可观察对象.Observer观察者.Subscribe订阅,Subscription Observable可观察对象 Observer观察者 总结整体 本笔记 ...

  5. [译] APT分析报告:11.深入了解Zebrocy的Dropper文档(APT28)

    这是作者新开的一个专栏,主要翻译国外知名安全厂商的APT报告,了解它们的安全技术,学习它们溯源APT组织和恶意代码分析的方法,希望对您有所帮助.当然,由于作者英语有限,会借助机翻进行校验,还请包涵! ...

  6. Ubuntu 11.04 (Natty Narwhal)图形安装教程、基本设置、网络设置、软件源、开启Unity、ubuntu文档

    一.准备安装Ubuntu 11.04系统 1.Ubuntu简介 Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的"ubuntu"一词(译为吾 ...

  7. 在Ubuntu 14.04 64bit上生成ATS本地离线文档

    下面是在Ubuntu 14.04 64bit上生成ats本地离线文档的方法 首先请安装配置好sphinx环境,参见我前面的博文 http://blog.csdn.net/tao_627/article ...

  8. linux如何右键新建文件夹,在Ubuntu 18.04右键菜单中增加新文档(New Document)及其他类型选项...

    本文教你在Ubuntu 18.04操作系统下使用命令操作在右键菜单中增加"新文档(New Document)"选项,包括为不同文件类型增加右键菜单选项的方法.起因是当我尝试创建一个 ...

  9. Ubuntu 11.04解决txt文档中文乱码方法

    Ubuntu 11.04解决txt文档中文乱码方法: $ gconftool-2 --set --type=list --list-type=string /apps/gedit-2/preferen ...

最新文章

  1. 来个例子,彻底弄懂什么是 EM 算法
  2. bootstrap-反色导航条
  3. linux 快照备份导出,KVM之虚拟机几种备份方法(快照/克隆/导出)
  4. Python求解线性方程组
  5. Kubernetes 稳定性保障手册 -- 日志专题
  6. 基于Java的TCP Socket通信详解(计算机端/Android手机端)
  7. 聊一聊Load Average
  8. GitHub 上数十个 NetBeans 开源项目被卷入供应链攻击
  9. easyUI导入导出
  10. vue如何加载html字符串_VUE渲染后端返回含有script标签的html字符串示例
  11. 微商加人方法,感动你我的加人故事
  12. 支配树学习思路/模板
  13. 系统分析师学习笔记(十七)
  14. 计算机考研数学考数学二的专业,考研常识:哪些专业考数学二?
  15. 岩板铺地好吗_卧室铺地板还是瓷砖好 这里给你答案
  16. oracle ora 31644,dmp文件损坏导致ORA-39014 ORA-39029 ORA-31693错误
  17. JMockit didn't get initialized
  18. 计算机控制面板有何用途,控制面板上面功能都有什么作用
  19. python实现真值表
  20. 把图片修改成指定的像素大小?

热门文章

  1. python实训报告pygame_[源码和文档分享]基于Python的PyGame库实现的2048小游戏
  2. prometheus下载慢_Prometheus + Grafana 监控 SpringBoot
  3. TopShell管理服务
  4. Deconvolution与Upsampling的区别
  5. C# 中对WinForm窗体中的控件快速设置TableIndex次序
  6. python小白-day6 ConfigParser模块
  7. 传递闭包(Floyd+bellman-Fold POJ1932)
  8. 数据仓库经验小结(转)
  9. WebService与使用风格RPC/SOA/REST
  10. 关于Android Studio里的Gradle文件