博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Rxjs中Notification介绍(一)
阅读量:4966 次
发布时间:2019-06-12

本文共 2611 字,大约阅读时间需要 8 分钟。

一、概念:

  Notification是什么?

  Notification中文意思是通知、通告和告示。在rxjs中Notification是一个类class,这个类主要基于操作符operators对其实例进行管理,比如通过materialize、dematerialize函数进行物质化和去物质化,不仅对实际交付的值进行封装,而且还对封装的值用元数据进行注解它是什么类型的推送消息(是next、error、或者complete)。

Notification类成员

 二、代码走起:

1 of(Notification.createNext(x => { 2         timer(10000).subscribe(() => { 3           console.log('延迟10s输出x= ', x); 4         }); 5       }), 6       Notification.createNext(y => { 7         timer(5000).subscribe(() => { 8           console.log('延迟5s输出y= ', y); 9         });10       }),11       Notification.createNext(z => {12         timer(3000).subscribe(() => {13           console.log('延迟3s输出z= ', z);14         });15       }),16       Notification.createNext(k => {17         timer(1000).subscribe(() => {18           console.log('延迟1s输出k= ', k);19         });20       }),21       Notification.createNext(a => {22         timer(0).subscribe(() => {23           console.log('延迟0s输出a= ', a);24         });25       }))      // .pipe(dematerialize()) // 去物质化,即对包裹的交付值进行去包裹行为,还原为原来的模样。26       .subscribe({27         next(value) {28           console.log('next', value);29         },30         error(reason){31           console.log('reason', reason);32         },33         complete(){34           console.log('complete');35         }36       }); 输出结果如下:

如果把上面的管道打开结果如下:

输出的值均为函数哦,如果执行函数,会出现什么结果呢?

 

1 of(Notification.createNext(x => { 2         timer(10000).subscribe(() => { 3           console.log('延迟10s输出x= ', x); 4         }); 5       }), 6       Notification.createNext(y => { 7         timer(5000).subscribe(() => { 8           console.log('延迟5s输出y= ', y); 9         });10       }),11       Notification.createNext(z => {12         timer(3000).subscribe(() => {13           console.log('延迟3s输出z= ', z);14         });15       }),16       Notification.createNext(k => {17         timer(1000).subscribe(() => {18           console.log('延迟1s输出k= ', k);19         });20       }),21       Notification.createNext('我是一个字符串'),22       Notification.createNext(a => {23         timer(0).subscribe(() => {24           console.log('延迟0s输出a= ', a);25         });26       }))27       .pipe(dematerialize())28       .subscribe({29         next(value) {30           if (typeof value === 'function') {31             value('hello world.');32           } else {33             console.log('next value= ', value);34           }35           36         },37         error(reason) {38           console.log('reason', reason);39         },40         complete() {41           console.log('complete');42         }43       }); 输出结果如下:

 

 

 

转载于:https://www.cnblogs.com/szy-du/p/11141487.html

你可能感兴趣的文章
轮播图原生js实现和jquery实现和js面向对象方式实现
查看>>
JQuery基础 2015-8-19(第97天)
查看>>
Windbg调试托管代码
查看>>
C# Web Service 根据WSDL文件和地址添加web引用
查看>>
20162311 《程序设计与数据结构》第一周学习总结
查看>>
tensorflow 基础学习七:模型的持久化
查看>>
Linux - iconv 使用 - 处理 curl 乱码问题
查看>>
python装饰器 & flask 通过装饰器 实现 单点登录验证
查看>>
Oracle PL/SQL 程序设计读书笔记 - 第17章 过程、函数与参数
查看>>
Win右键管理员权限的获取
查看>>
软POS、硬POS对比
查看>>
Objective-C文件和目录操作,IOS文件操作,NSFileManager使用文件操作
查看>>
eclipse快捷键记录
查看>>
c/c++ 图相关的函数(二维数组法)
查看>>
e-chart 本地加载中国地图
查看>>
ifconfig
查看>>
[UE4]更新Flag坐标
查看>>
es安装elasticsearch-sql插件
查看>>
广播信道--CSMA/CD协议
查看>>
第二十六课
查看>>