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);
    
      }
  • 相关阅读:
    【EC】DropShipping
    【电商】淘宝商家论坛
    【电商】后台
    【产品】小龙的饭否记录
    【用研】00后这一代
    【产品】未来趋势
    【数据产品】flurry
    【产品思考】各产品春晚方案
    计算概论(二)计算机与程序运行基本原理
    计算概论(一)计算起源、图灵机、计算原理
  • 原文地址:https://www.cnblogs.com/xuepei/p/9964182.html
Copyright © 2011-2022 走看看