(精华)2020年8月5日 Angular 异步数据流RxJS的使用
发布日期:2021-06-29 15:08:54
浏览次数:2
分类:技术文章
本文共 2404 字,大约阅读时间需要 8 分钟。
import { Component, OnInit } from '@angular/core';import { CommonService } from '../../services/common.service';import { Observable } from 'rxjs';import { map, filter } from 'rxjs/operators';@Component({ selector: 'app-home', templateUrl: './home.component.html', styleUrls: ['./home.component.less']})export class HomeComponent implements OnInit { constructor(public common: CommonService) { } //注册服务 ngOnInit(): void { //1. 异步回调 this.common.getDatacb((res) => { console.log(res) }); //2. promise获取 this.common.getPromise().then((res) => { console.log(res); }) //3. rxjs获取异步数据 var rxData = this.common.geRxjstData(); var p1 = rxData.subscribe(res => { console.log(res); }) //4. rxjs获取异步数据执行多次 this.common.getRxIntervalData().subscribe(res => { console.log(res); }) // 5. 过一秒以后撤回刚才的动作 setTimeout(() => { p1.unsubscribe(); }, 1000) //6. pipe var stream = this.common.streamFun(); stream.pipe( filter(val => val % 2 == 0), //过滤 map(value => { return value * value; // 处理数据 }) ) .subscribe(res => { console.log(res); }) }}
import { Injectable } from '@angular/core';import { Observable } from "rxjs";//js库@Injectable({ providedIn: 'root'})export class CommonService { constructor() { } ///回调函数 getDatacb(cb) { setTimeout(() => { cb('getCBdata') }, 1000) } //promise获取 getPromise() { return new Promise((resolve, reject) => { setTimeout(() => { resolve('张三----promise'); // resolve('张三----promise1'); // resolve('张三----promise2'); }, 1000) }) } //3. rxjs获取异步数据 geRxjstData() { return new Observable(observer => { setTimeout(() => { var username = '小明 -- rxjs' observer.next(username); }, 3000) }) } //4. rxjs多次执行 getRxIntervalData() { return new Observable(observer => { var count = 0; setInterval(() => { count++; var username = '小明 --rxjs-Interval' observer.next(username + count); }, 1000) }) } // promise : 不具备撤回 , 以及 多次执行, 但是Rxjs具备 streamFun() { return new Observable(observer => { let count = 0; setInterval(() => { observer.next(count++); }, 1000); }); }}
转载地址:https://codeboy.blog.csdn.net/article/details/107828364 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月05日 22时12分27秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
复合材料生活中的应用
2019-04-29
ABAQUS复合材料(适合小白)
2019-04-29
ABAQUS高级案例解析
2019-04-29
人工智能药物研发
2019-04-29
【超级干货+福利】AIDD最全面的学习教程
2019-04-29
最新通知:AIDD与网络药理学资料大全
2019-04-29
Lammps分子动力学与第一性原理材料模拟及催化
2019-04-29
实习生小白的日常
2019-04-29
实习小白的日常(4)
2019-04-29
微信扫码登录验证PHP代码(不用开放平台)
2019-04-29
CH554E USB单片机 10引脚小封装低成本USB方案
2019-04-29
windows MQTT客户端
2019-04-29
LINUX下挂载(mount)查看树莓派镜像文件
2019-04-29
1元钱的超低成本单芯片USB单片机方案
2019-04-29
单片机/树莓派扩展双串口(TTL和RS485)
2019-04-29
基于CH568芯片的SATA电子盘方案
2019-04-29
linux下C语言判断网络是否连接
2019-04-29
2021/4/27课堂总结和作业
2019-04-29
2021.4.28课堂总结和作业
2019-04-29