加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

JS中observables操作符怎样建设 有哪些API

发布时间:2023-08-03 12:42:33 所属栏目:语言 来源:
导读:这篇文章给大家分享的是JS中observables操作符怎样创建,有哪些API。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。

这篇文章给大家分享的是JS中observables操作符怎样创建,有哪些API。小编觉得挺实用的,因此分享给大家做个参考,文中的介绍得很详细,而要易于理解和学习,有需要的朋友可以参考,接下来就跟随小编一起了解看看吧。

操作符是 observables 背后的马力,为复杂的异步任务提供了一种优雅的声明式解决方案。本篇就带领大家 “粗略” 过一下 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,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';

/*

  timer 接收第二个参数,它决定了发出序列值的频率,在本例中我们在1秒发出第一个值,

  然后每2秒发出序列值

*/

const source = timer(1000, 2000);

// 输出: 0,1,2,3,4,5......

const subscribe = source.subscribe(val => console.log(val));

感谢各位的阅读,以上就是“JS中observables操作符怎样创建,有哪些API”的内容了,经过本文的学习后,相信大家对JS中observables操作符怎样创建,有哪些API都有更深刻的体会了吧。

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章