博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RxJS核心概念之Subjet在angular2+上的应用
阅读量:4355 次
发布时间:2019-06-07

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

Subject,在RxJS中是一类特殊的Observable(可观察对象),它可像多个Observer(观察者)推送值。

每一个Subject也可以作为Observer(观察者) Subject同样也是一个由next(v),error(e),和complete()这些方法组成的对象。调用next(theValue)方法后,Subject会向所有已经在其上注册的Observer多路推送theValue。

1、创建一个subjectService,实现可观察以及推送推功能

import {Injectable} from "@angular/core";import { ReplaySubject } from "rxjs/ReplaySubject";import { Observable } from "rxjs/Observable";import 'rxjs/add/observable/of';@Injectable() export class SubjectService { private _subject: ReplaySubject
= new ReplaySubject
(1); //新建一个可观测可观测 setCurrentValue(value: string): Observable
{ //设置值 this._subject.next(value); return Observable.of(true); } currentValue(): Observable
{
//推送值 return this._subject.asObservable(); } }

2、在组建中设置需要推送的值

constructor(private _subjectService: SubjectService) { }setValue() { this._subjectService.setCurrentValue('value').subscribe((result: boolean) => { if (!result) { console.log('可观察者设定失败');      return;    } console.log('可观察者设定成功');  });}

3、订阅、可订阅多个对象

subjectValue = '';constructor(private _subjectService: SubjectService) { } ngOnInit() { this._subjectService.currentValue().subscribe((data: string) => { if (!data) { console.log('获取失败');      return;    } this.subjectValue = data;  });}

参考网址

https://segmentfault.com/a/1190000005069851

转载于:https://www.cnblogs.com/ymh2013/p/9985593.html

你可能感兴趣的文章
大道至简阅读笔记03
查看>>
正确开启Mockjs的三种姿势:入门参考(一)
查看>>
实验2
查看>>
sublime text 3安装Anaconda插件之后写python出现白框
查看>>
windows服务器详细安全设置
查看>>
如何去把内容分享到whatsapp上?
查看>>
mysql SQL语法总结
查看>>
STM32学习笔记3(TIM通用模块输入捕获)
查看>>
Java线程中,Blocked,Wait,以及TIMED_WAIT的区别
查看>>
python爬虫:登录百度账户,并上传文件到百度云盘
查看>>
彼岸芳华
查看>>
C/C++ 宏技巧
查看>>
CentOS更新源
查看>>
C++11 assert/static_assert
查看>>
第二次结对编程作业
查看>>
python redis使用
查看>>
JavaScript自学笔记 第2次
查看>>
吴恩达机器学习笔记2-监督学习
查看>>
POJ 1734 Sightseeing trip (floyd 求最小环)
查看>>
Android系统手机邮件收发设置教程
查看>>