zoukankan      html  css  js  c++  java
  • [RxJS] Subject basic

    A Subject is a type that implements both Observer and Observable types. As an Observer, it can subscribe to Observables, and as an Observable it can produce values and have Observersw subscribe it.

    First time I read 

     implements both Observer and Observable types

    I was quite confused. 

    As a Observable:

    var subject = new Rx.Subject();
    var subscription = subject.subscribe(
       function onNext(x) { console.log('onNext: ' + x); },
       function onError(e) { console.log('onError: ' + e.message); },
       function onCompleted() { console.log('onCompleted'); }
    );
    subject.onNext('Our message #1');
    subject.onNext('Our message #2');
    
    /*
    "onNext: Our message #1"
    "onNext: Our message #2"
    */

    Every time we call onNext() message to yield the value.

    As a Observer, so we use 'source' to sebscribe 'subject', then subscribe 'subject' again to get the side effect

    var subject = new Rx.Subject();
    var source = Rx.Observable.interval(300)
       .map(function(v) { return 'Interval message #' + v; })
       .take(5);
    source.subscribe(subject);
    var subscription = subject.subscribe(
       function onNext(x) { console.log('onNext: ' + x); },
       function onError(e) { console.log('onError: ' + e.message); },
       function onCompleted() { console.log('onCompleted'); }
    );
    setTimeout(function() {
       subject.onCompleted();
    }, 1000);
    
    /*
    "onNext: Interval message #0"
    "onNext: Interval message #1"
    "onNext: Interval message #2"
    "onCompleted"
    */
  • 相关阅读:
    Qt编译出错:“Cannot find file...... .pro."
    谈论如何有效地保护你的数据
    购书网
    VC非模态对话框创建和销毁
    在GUI程序中使用控制台的两种方法
    fatal error C1010: unexpected end of file while looking for precompiled header directive
    burp抓取手机包
    为firefox添加flash插件
    msfvenom生成linux后门
    kali下操作 Apache2
  • 原文地址:https://www.cnblogs.com/Answer1215/p/5774175.html
Copyright © 2011-2022 走看看