Rxjs

在响应式编程中,Observable可能是Promise的后续

ReactiveX = 带迭代器的观察者模式 + 用集合的函数编程,旨在管理序列事件。

Rxjs 核心

  • Observable 代表可调用的预期值或事件集合
  • Observer 一个知晓如何监听被Observable传递值的回调集合
  • Subscription 决定Observable产值能否被取消
  • Operators 纯函数
  • Subject 等价于事件发生器EventEmitter,将事件或值广播
  • Schedulers 控制并发的中央派发器,可用setTimeout 或 requestAnimationFrame 或其它协调并行计算

解析

与Promise思路相同,一般不是现在能用且可用的,都是基于未来可期的事件编程,但Obserable多值可取消可处理。

Observable 看起来像生产者,但只有调用subscribe才产值

示例

js

document.addEventListener('click', () => console.log('Clicked!'));

rxjs

import { fromEvent } from 'rxjs';

fromEvent(document, 'click').subscribe(() => console.log('Clicked!'));

flow

js

let count = 0;
let rate = 1000;
let lastClick = Date.now() - rate;
document.addEventListener('click', () => {
  if (Date.now() - lastClick >= rate) {
    console.log(`Clicked ${++count} times`);
    lastClick = Date.now();
  }
});

rxjs

import { fromEvent } from 'rxjs';
import { throttleTime, scan } from 'rxjs/operators';

fromEvent(document, 'click')
  .pipe(
    throttleTime(1000),
    scan(count => count + 1, 0)
  )
  .subscribe(count => console.log(`Clicked ${count} times`));
本作品采用《CC 协议》,转载必须注明作者和本文链接
pardon110
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
开发者 @ 社科大
文章
134
粉丝
24
喜欢
101
收藏
55
排名:106
访问:8.9 万
私信
所有博文
社区赞助商