JavaScript中的observables|JavaScript中的observables 操作符创建实例
目录
- 一、创建实例
- 1.??create??
- 2.??empty??
- 3.??from??
- 4.??of??
- 5.??fromEvent??
- 6.??fromPromise??
- 7.??interval??
- 8.??timer??
本篇就带领大家 “粗略” 过一下 observable 创建实例的重点 API 都有哪些?以及用代码片段展示出用法示意~
一、创建实例
1.??create??
??
create
?? 肯定不陌生吧?使用给定的订阅函数来创建 observable ;// RxJS v6+import { Observable } from 'rxjs'; /*创建在订阅函数中发出 'Hello' 和 'World' 的 observable 。*/const hello = Observable.create(function(observer) {observer.next('Hello'); observer.next('World'); }); // 输出: 'Hello'...'World'const subscribe = hello.subscribe(val => console.log(val));
2.??empty??
??
empty
?? 会给我们一个空的 observable,如果我们订阅这个 observable ,它会立即发送 complete 的讯息;var source = Rx.Observable.empty(); source.subscribe({next: function(value) {console.log(value)},complete: function() {console.log('complete!'); },error: function(error) {console.log(error)}}); // complete!
3.??from??
用 ??
from
?? 来接收任何可列举的参数(JS 数组);// RxJS v6+import { from } from 'rxjs'; // 将数组作为值的序列发出const arraySource = from([1, 2, 3, 4, 5]); // 输出: 1,2,3,4,5const subscribe = arraySource.subscribe(val => console.log(val));
4.??of??
与 ??
from
?? 相似的 ??of
??,也是用于操作一个 list,按顺序发出任意数量的值;// RxJS v6+import { of } from 'rxjs'; // 依次发出提供的任意数量的值const source = of(1, 2, 3, 4, 5); // 输出: 1,2,3,4,5const subscribe = source.subscribe(val => console.log(val));
5.??fromEvent??
??fromEvent?? 将事件转换成 observable 序列;// RxJS v6+import { fromEvent } from 'rxjs'; import { map } from 'rxjs/operators'; // 创建发出点击事件的 observableconst source = fromEvent(document, 'click'); // 映射成给定的事件时间戳const example = source.pipe(map(event => `Event time: ${event.timeStamp}`)); // 输出 (示例中的数字以运行时为准): 'Event time: 7276.390000000001'const subscribe = example.subscribe(val => console.log(val));
6.??fromPromise??
??
fromPromise
?? 创建由 promise 转换而来的 observable,并发出 promise
的结果;var source = Rx.Observable.fromPromise((resolve, reject) => {setTimeout(() => {resolve('Hello RxJS!'); },3000)})// 等同于var source = Rx.Observable.from(new Promise((resolve, reject) => {setTimeout(() => {resolve('Hello RxJS!'); },3000)}))
7.??interval??
显然,??
interval
?? 操作和时间有关,它基于给定时间间隔发出数字序列;// RxJS v6+import { interval } from 'rxjs'; // 每1秒发出数字序列中的值const source = interval(1000); // 数字: 0,1,2,3,4,5....const subscribe = source.subscribe(val => console.log(val)); // import { interval } from 'rxjs'; // const source = interval(1000); // 等同于// var source = Rx.Observable.interval(1000);
8.??timer??
??
timer
?? 是 ??interval
?? 的升级,用于给定持续时间后,再按照指定间隔时间依次发出数字。// RxJS v6+import { timer } from 'rxjs'; /*timer 接收第二个参数,它决定了发出序列值的频率,在本例中我们在1秒发出第一个值,然后每2秒发出序列值*/const source = timer(1000, 2000); // 输出: 0,1,2,3,4,5......const subscribe = source.subscribe(val => console.log(val));
【JavaScript中的observables|JavaScript中的observables 操作符创建实例】到此这篇关于JavaScript中的observables 操作符创建实例的文章就介绍到这了,更多相关observables 操作符创建实例内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 使用基于|使用基于 WebRTC 的 JavaScript API 在浏览器环境里调用本机摄像头
- Clickhouse中的预聚合引擎
- JavaScript的事件循环机制浅析
- C++中的拷贝构造详解
- 聊聊SpringCloud中的Ribbon进行服务调用的问题
- ECMAScript|JavaScript性能优化具体实现-第二篇
- R语言入门课|R语言导入数据文件(数据导入、加载、读取)、使用Hmisc包的spss.get函数导入SPSS中的por格式文件
- 深度学习|深度学习中的优化标准(交叉熵与均方误差)
- 详解Java中的抽象类和抽象方法
- JavaScript面向对象—深入ES6的class