4

如何创建一个可以直接将事件推送到的 Observable,例如 Bacon.js 的 Bus?

4

1 回答 1

12

RxJS 中的等价物称为 Subject。它既是 Observer 又是 Observable。因此,要将事件推送给它,您可以使用它的 Observer 接口:onNext、onError 和 onCompleted 方法。然后你可以像任何 Observable 一样订阅它、映射、压缩、过滤它。这是官方文档中的一个示例:

var subject = new Rx.Subject();

var subscription = subject.subscribe(
    function (x) { console.log('onNext: ' + x); },
    function (e) { console.log('onError: ' + e.message); },
    function () { console.log('onCompleted'); });

subject.onNext(1);
// => onNext: 1

subject.onNext(2);
// => onNext: 2

subject.onCompleted();
// => onCompleted

subscription.dispose();

您可以在此处查看主题入门指南,并在此处查看主题 API 文档。

于 2014-12-14T23:47:07.590 回答