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);
    
      }
  • 相关阅读:
    ELK Kafka json to elk
    ElasticSearch 日期赋值
    ELK Nxlog->Kafka->ElasticSearch
    Windows 安装Kafka
    图论路径简单算法
    鉴以往而知未来
    细微之处显文化
    Alt+数字键所能打出的符号表
    《愚公移山》与愚公精神
    Wikipedia's World
  • 原文地址:https://www.cnblogs.com/xuepei/p/9964182.html
Copyright © 2011-2022 走看看