2

次の仕様で新しい JSBIN プロジェクトを実行すると:

- タブの利用: JavaScript、コンソール

- ライブラリの追加: RxJS 5.0.0

次に、JavaScript 領域で次のコード ブロックを実行します。

var observable = Rx.Observable.create(observer => {
  setInterval(() => {
    observer.onNext('This is the output of my async operation');
  }, 2000);
});

observable.subscribe(response => console.log(response));

上記のコードは、コンソール領域に次の出力をレンダリングする必要があります。

"This is the output of my async operation"

2 秒後、コンソール領域がレンダリングされます。

"This is the output of my async operation"

ただし、次のエラーが表示されます。

"error"
-----------------------------
"ReferenceError: Rx is not defined
    at yivicazake.js:3:4
    at https://static.jsbin.com/js/prod/runner-3.39.12.min.js:1:13926
    at https://static.jsbin.com/js/prod/runner-3.39.12.min.js:1:10855

JSBINを使用してRxJSをライブラリとしてプルするのはこれが初めてで、誰かがこの特定のエラーを経験したことを願っています。

4

2 に答える 2

2

私はRxJSも学んでおり、ここで注意すべきことがいくつかあります。現時点では、RxJS v4 と v5 のドキュメントを混同するのは非常に簡単です。そのため、役立つリンクがいくつかあります。

v5 リポジトリは、このhttps://github.com/ReactiveX/RxJSです。/Reactive-Extensions/RxJS は v4 用です。どちらもまだ有用なので、v4 でオンライン コースをフォローしている場合 (コースはたくさんあります)、移行ドキュメントが役に立ちます!

このマニュアルは非常に役に立ち、RxMarblesも役に立ちます。

あなたのコードについては、これを試してください:

// create subscriber
const createSubscriber = tag => ({
    next(item) { console.log(`${tag}.next ${item}`); },
    error(error) { console.log(`${tag}.error ${error.stack || error}`); },
    complete() { console.log(`${tag}.complete`); }
});

// interval
Rx.Observable
    .interval(2000)
    .take(5)
    .subscribe(createSubscriber('This is the output of my async operation'));

お役に立てれば!

于 2016-08-21T14:48:59.283 に答える
2

Rxjsベータ版の正確なバージョンがわかりません。ここでjsbinを作成しました。 http://jsbin.com/henimevepa/edit?html,js,console,output

ここにあるものはほとんどありません

- instead of '.onNext' in version 5 its just '.next'
- You need to subscribe to observer to run it.
于 2016-08-21T07:39:58.803 に答える