zoukankan      html  css  js  c++  java
  • RxJS--Subject

    Subject是Observable(可观察对象)的子类,subject是多播的,允许将值多播给多个observer(观察者),普通observable是单播。

    每一个Subject都是一个Observable(可观察对象),可以订阅(subscribe)它。

    要给subject提供新值,只要调用next(theValue), 它会将值theValue多播给已注册监听该subject的观察者们。

    import {Component, OnInit} from '@angular/core'
    import {Subject, Subscription} from 'rxjs'
    
    
    ngOnInit(){
        const subject: Subject<string> = new Subject<string>();
    
        const subscriptionA: Subscription = subject.subscribe(
            (val: string) => {console.log(`observerA: $(val)`)};
        );
    
        const subscriptionB: Subscription = subject.subscribe(
            (val: string) => {console.log(`observerB: $(val)`)};
        );
    
        subject.next('博客');
        subject.next('圆圆');
        subscriptionA.unsubscribe();    //取消订阅
        subscriptionB.unsubscribe();    //取消订阅
        subject.next('取消订阅后');
        subject.complete();
    }

    每一个Subject也可以作为Observer(观察者),有如下方法:next(v), error(e), complete(); 可以把Subject作为参数传递给任何Observable的subscribe方法

    import { Subject,  Subscription, Observable} from 'rxjs';
    
    
    ngOnInit() {
        const subject: Subject<string> = new Subject<string>();
        const subscriptionA: Subscription = subject.subscribe(
          (val: string) => {
            console.log(`observerA: ${val}`);
          }
        );
        const subscriptionB: Subscription = subject.subscribe(
          (val: string) => {
            console.log(`observerB: ${val}`);
          }
        );
    
        const observable: Observable<string> = from(['Raph', 'Don']);
        observable.subscribe(subject);
    
      }
  • 相关阅读:
    算法(一)—— 河内之塔(汉诺塔)
    JAVA爬取网页邮箱
    js中判断某字符串含有某字符出现的次数
    逻辑删除和物理删除的区别
    Forward和Redirect的区别
    Postman 传Map类型的参数
    Java基础
    【html-css】
    【HTML----】
    【python-while-以及字符串的相关操作和函数】
  • 原文地址:https://www.cnblogs.com/xuepei/p/9964182.html
Copyright © 2011-2022 走看看