JS中observables操作符怎样创建,有哪些API
Admin 2022-11-15 群英技术资讯 827 次浏览
这篇文章给大家分享的是JS中observables操作符怎样创建,有哪些API。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。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进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
1.MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。是世界上目前用的最广泛的nosql数据库2.noSql翻译过来notonlysql不仅仅是sql他就是一个非关系型数据库,它的特点:高性能、易部署、易使用,存储数据非常方便。注:①关系型数据库,是指采用了关系模型来组织数据的数据库。 关系模型指的就是
这篇文章主要给大家分享js包装对象的内容,下文有具体的介绍和实例,对新手学习和理解js包装对象有一定的帮助,有需要的朋友可以参考借鉴,下面我们一起来学习一下吧。
对于vue下的双向绑定功能,个人理解为在处理逻辑的过程中缓存了大量的node对象,node对象可以是html标签、文本内容。既然选择了缓存这些对象,那么在用的过程中哪里需要改变就把node拿出来,进行标签属性的变更或者文本内容的修改。本文主要讲了如何实现双向绑定
今天给大家分享的是使用vue写一个web在线聊天的功能,这一需求在做网站在线客服的时候常会遇到,而想要实现实时在线聊天,对于主要的功能点是需要了解清楚的,感兴趣的朋友接下来就跟随小编一起了解看看吧。
这篇文章主要为大家详细介绍了JS、CSS和HTML实现注册页面,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008