rx.js Observable 剖析(创建,订阅,执行,清理 )

Posted ajanuw

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了rx.js Observable 剖析(创建,订阅,执行,清理 )相关的知识,希望对你有一定的参考价值。

文档 http://cn.rx.js.org/manual/overview.html#h24

Observables 是使用 Rx.Observable.create 或创建操作符创建的,并使用观察者来订阅(subscribe)它,然后执行它并发送 next / error / complete 通知给观察者,而且执行可能会被清理(unsubscribe)。

const { Observable } = require('rxjs');

// 创建 Observables
var observable = Observable.create(observer => {
    var id = setInterval(() => {
        observer.next('hi')
    }, 1000);

    // 提供取消和清理 interval 资源的方法
    return function unsubscribe() {
        clearInterval(id);
    };
});

// Observer (观察者,執行)
var observer = {
    next(res) {
        format(res)
    },
    error(err) {
        format(err)
    },
    complete() {
        format('done.')
    },
};

// 订阅 Observables
var subscription = observable.subscribe(observer);

// .add() 合并多个订阅,以便同时取消订阅
// subscription.add(childSubscription);

// 撤销 add的合并
// subscription.remove(childSubscription);

// 3s后取消订阅
setTimeout(() => {
    subscription.unsubscribe();
}, 3000)

以上是关于rx.js Observable 剖析(创建,订阅,执行,清理 )的主要内容,如果未能解决你的问题,请参考以下文章

如何取消订阅由 Angular 服务创建的 observable [重复]

RxSwift 对一个 observable 的多个订阅

RxJava Observable.create 包装可观察订阅

Knockout:从observable中删除所有订阅

长寿命的多播 Observable,每次订阅时都会重新订阅其源

创建一次性订阅