JS中observables操作符怎样创建,有哪些API
Admin 2022-11-15 群英技术资讯 303 次浏览
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));
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!
用 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));
与 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));
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));
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) }))
显然,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);
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));
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
#thinkphp5系列之URL伪静态。通常我们为了增强搜索引擎的友好面,都将文章内容生成静态页面,但是有的朋友为了实时的显示一些信息。
find选择器在jquery中用于 选择指定元素下面的所有子元素 ,返回的是标签数组object对象,下面是find选择器使用示例。 html部分代码 divid=testullilistitem1/lililistitem2/lililistitem3/li/ul/divullidivtest外面的元素/li/ul jquery find选择器使用格式
javascript实现鼠标悬停变色的方法:1、元素绑定onmouseover事件,并设置事件处理函数;2、在事件处理函数中,使用“元素对象.style.颜色属性名=颜色值;”语句设置当触发悬停事件时,元
这篇文章主要为大家详细介绍了uniapp电商小程序实现订单30分钟倒计时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
本篇文章给大家分享20个稀奇古怪的 JavaScript表达式,你能回答出其输出结果吗?快来挑战回答一下吧!
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008