深入浅出RxJS

深入浅出RxJS

编辑推荐

本书系统讲解RxJS响应式编程的技术原理与应用。

内容简介

RxJS是Reactive Extension这种模式的JavaScript语言实现,通过学习了解RxJS,你将打开一扇通往全新编程风格的大门。当然,我们学习RxJS,并不是因为RxJS是一项炫酷的技术,也不是因为RxJS是一个最新的技术。在技术的道路上,如果只是追逐“炫酷”和“最新”,肯定是要吃苦头的,因为这是舍本逐末。

作者简介

作者程墨,资深架构师,曾任职于摩托罗拉、雅虎和微软,云鸟配送平台联合创始人,目前服务于美国视频服务公司Hulu。

章节目录

版权信息

前言

第1章 函数响应式编程

1.1 一个简单的RxJS例子

1.2 函数式编程

1.2.1 什么是函数式编程

1.2.2 为什么函数式编程最近才崛起

1.2.3 函数式编程和面向对象编程的比较

1.3 响应式编程

1.4 Reactive Extension

1.5 RxJS是否是函数响应式编程

1.6 函数响应式编程的优势

1.7 本章小结

第2章 RxJS入门

2.1 RxJS的版本和运行环境

2.2 Observable和Obschmerver

2.2.1 观察者模式

2.2.2 迭代器模式

2.2.3 创造Observable

2.2.4 跨越时间的Observable

2.2.5 永无止境的Observable

2.2.6 Observable的完结

2.2.7 Observable的出错处理

2.2.8 Obschmerver的简单形式

2.3 退订Observable

2.4 Hot Observable和Cold Observable

2.5 操作符简介

2.6 弹珠图

2.7 本章小结

第3章 操作符基础

3.1 为什么要有操作符

3.2 操作符的分类

3.2.1 功能分类

3.2.2 静态和实例分类

3.3 如何实现操作符

3.3.1 操作符函数的实现

3.3.2 关联Observable

3.3.3 改进的操作符定义

3.3.4 lettable/pipeable操作符

3.4 本章小结

第4章 创建数据流

4.1 创建类操作符

4.2 创建同步数据流

4.2.1 create:毫无神奇之处

4.2.2 of:列举数据

4.2.3 range:指定范围

4.2.4 generate:循环创建

4.2.5 repeat:重复数据的数据流

4.2.6 三个极简的操作符:empty、never和throw

4.3 创建异步数据的Observable对象

4.3.1 interval和timer:定时产生数据

4.3.2 from:可把一切转化为Observable

4.3.3 fromPromise:异步处理的交接

4.3.4 fromEvent

4.3.5 fromEventPattern

4.3.6 ajax

4.3.7 repeatWhen

4.3.8 defer

4.4 本章小结

第5章 合并数据流

5.1 合并类操作符

5.1.1 concat:首尾相连

5.1.2 merge:先到先得快速通过

5.1.3 zip:拉链式组合

5.1.4 combineLatest:合并最后一个数据

5.1.5 withLatestFrom

5.1.6 解决glitch

5.1.7 race:胜者通吃

5.1.8 startWith

5.1.9 forkJoin

5.2 高阶Observable

5.2.1 高阶Observable的意义

5.2.2 操作高阶Observable的合并类操作符

5.2.3 进化的高阶Observable处理

5.3 本章小结

第6章 辅助类操作符

6.1 数学类操作符

6.1.1 count:统计数据个数

6.1.2 max和min:最大最小值

6.1.3 reduce:规约统计

6.2 条件布尔类操作符

6.2.1 every

6.2.2 find和findIndex

6.2.3 isEmpty

6.2.4 defaultIfEmpty

6.3 本章小结

第7章 过滤数据流

7.1 过滤类操作符的模式

7.1.1 filter

7.1.2 first

7.1.3 last

7.1.4 take一族操作符

7.1.5 计时的点击计数网页程序

7.1.6 skip

7.1.7 skipWhile和skipUntil

7.2 回压控制

7.2.1 throttle和debounce

7.2.2 auditTime和audit

7.2.3 sampleTime和sample

7.2.4 根据数据序列做回压控制

7.3 其他过滤方式

7.3.1 ignoreElements

7.3.2 elementAt

7.3.3 single

7.4 本章小结

第8章 转化数据流

8.1 转化类操作符

8.2 映射数据

8.2.1 map

8.2.2 mapTo

8.2.3 pluck

8.3 缓存窗口:无损回压控制

8.3.1 windowTime和bufferTime

8.3.2 windowCount和bufferCount

8.3.3 windowWhen和bufferWhen

8.3.4 windowToggle和bufferToggle

8.3.5 window和buffer

8.4 高阶的map

8.4.1 concatMap

8.4.2 mergeMap

8.4.3 switchMap

8.4.4 exhaustMap

8.4.5 高阶的MapTo

8.4.6 expand

8.5 数据分组

8.6 累计数据

8.6.1 scan

8.6.2 mergeScan

8.7 本章小结

第9章 异常错误处理

9.1 异常处理不可避免

9.2 异常处理的难点

9.2.1 try/catch只支持同步运算

9.2.2 回调函数的局限

9.2.3 Promise的异常处理

9.3 RxJS的异常处理

9.3.1 catch

9.3.2 retry

9.3.3 retryWhen

9.3.4 finally

9.4 重试的本质

9.5 本章小结

第10章 多播

10.1 数据流的多播

10.2 Hot和Cold数据流差异

10.3 Subject

10.3.1 两面神Subject

10.3.2 用Subject实现多播

10.3.3 makeHot操作符

10.3.4 Subject不能重复使用

10.3.5 Subject可以有多个上游

10.3.6 Subject的错误处理

10.4 支持多播的操作符

10.4.1 multicast

10.4.2 publish

10.4.3 share

10.5 高级多播功能

10.5.1 publishLast和AsyncSubject

10.5.2 pubishReplay和ReplaySubject

10.5.3 publishBehavior和BehaviorSubject

10.6 本章小结

第11章 掌握时间的Scheduler

11.1 Scheduler的调度作用

11.2 RxJS提供的Scheduler

11.3 Scheduler的工作原理

11.3.1 单线程的JavaScript

11.3.2 调用栈和事件循环

11.3.3 Scheduler如何工作

11.4 支持Scheduler的操作符

11.4.1 创造类和合并类操作符

11.4.2 observeOn

11.4.3 subscribeOn

11.5 本章小结

第12章 RxJS的调试和测试

12.1 调试方法

12.1.1 无用武之地的Debugger

12.1.2 利用日志来调试

12.1.3 利用do来插入调试代码

12.1.4 改进的日志调试方法

12.1.5 数据流依赖图

12.1.6 弹珠图

12.2 单元测试

12.2.1 单元测试的作用

12.2.2 RxJS天生适合单元测试

12.2.3 单元测试的结构

12.2.4 RxJS单元测试中的时间

12.2.5 操纵时间的TestScheduler

12.2.6 可测试性代码

12.3 本章小结

第13章 用RxJS驱动React

13.1 React简介

13.1.1 为什么选择React

13.1.2 React如何工作

13.2 简单的React应用Counter

13.3 利用RxJS管理React状态

13.3.1 利用Subject作为桥梁

13.3.2 用高阶组件连接RxJS

13.4 本章小结

第14章 Redux和RxJS结合

14.1 Redux简介

14.1.1 Redux的工作方式

14.1.2 构建Redux应用

14.2 用RxJS实现Redux

14.3 Redux和RxJS比较

14.4 Redux-Observable:Redux和RxJS的结合

14.5 本章小结

第15章 RxJS游戏开发

15.1 breakout的历史

15.2 程序设计

15.3 用RxJS实现breakout

15.4 本章小结

结语

深入浅出RxJS是2018年由机械工业出版社出版,作者程墨。

得书感谢您对《深入浅出RxJS》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
函数式编程思维 电子书

Java等现代编程语言中出现了越来越多的函数式特性,跟随这本书,去了解语法表象之下真正需要掌握的新思维。
深入Linux内核架构 电子书

众所周知,Linux操作系统的源代码复杂、文档少,对程序员的要求高,要想看懂这些代码并不是一件容易事。本书结合内核版本2.6.24源代码中最关键的部分,深入讨论Linux内核的...
Python计算机视觉编程 电子书

《Python计算机视觉编程》适合的读者是:有一定编程与数学基础,想要了解计算机视觉的基本理论与算法的学生,以及计算机科学、信号处理、物理学、应用数学和统计学、神经生理学、认知...
Rust程序设计 电子书

本书对Rust进行了全面介绍,并提供了大量清晰易懂的示例,逐步指导读者用Rust编写出既安全又高性能的程序。
华为防火墙技术漫谈 电子书

市场上第一本华为官方出版的防火墙学习用书。
C++ 黑客编程揭秘与防范(第3版) 电子书

反病毒工程师入门精选,包含反病毒领域的所有知识,是亿万读者的引路名师。
写给大家看的安卓应用开发书:App Inventor 2快速入门与实战 电子书

由浅入深地介绍可视化编程工具AppInventor的基本内容。