JavaScript中的observables 操作符创建实例
操作符是 observables 背后的马力,为复杂的异步任务提供了一种优雅的声明式解决方案。
本篇就带领大家 “粗略” 过一下 observable 创建实例的重点 API 都有哪些?以及用代码片段展示出用法示意~
一、创建实例
1.create
create
肯定不陌生吧?使用给定的订阅函数来创建 observable ;
// RxJS v6+
import { Observable } from 'rxjs';
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,5
const 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,5
const subscribe = source.subscribe(val => console.log(val));
5.fromEvent
fromEvent 将事件转换成 observable 序列;
// RxJS v6+
import { fromEvent } from 'rxjs';
import { map } from 'rxjs/operators';
// 创建发出点击事件的 observable
const 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';
const source = timer(1000, 2000);
// 输出: 0,1,2,3,4,5......
const subscribe = source.subscribe(val => console.log(val));
到此这篇关于JavaScript中的observables 操作符创建实例的文章就介绍到这了,更多相关observables 操作符创建实例内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341