2016-07-15 11 views
0

現在、RxJSライブラリでいくつかの読書をしており、この知識をangular2アプリケーションに組み込むことを目標として、建築家や寄稿者によって提供されているクラスのいくつかを調べる時間があります。私は難しいと思っています。なぜなら、私はangle2特有ではない例のいずれかで見ているように、構文を変更する方法を考え出すことができないため、RxJSを使用することができるからです。例えば、私がしようとした場合、コンストラクタでオブザーバを作成します。RxJS Angular 2構文

this.$mouseObserver = Rx.Observer.create(
     function (x) { 
    console.log('Next: %s', x); 
    }, 
    function (err) { 
    console.log('Error: %s', err); 
    }, 
    function() { 
    console.log('Completed'); 
    }); 

Rxはあっても、常にそれをインポートした後、未定義アップします。 Observer and Observable import fine、ならびにそれらのメソッド。私は何か基本的なものを欠いていますRxJSのドキュメントはすべてRx.でほぼすべてを開始しますが、その構文を使用する1つのAngular 2チュートリアルは見ていません。

答えて

1

あなたの場合:

import { Observer } from 'rxjs/Observer'; 

か:

import { Observer } from 'rxjs/Rx'; 

あなたは(受信せず。)Observer.createを使用します。 Rx.Observerを使用するには、個々のクラス/オブジェクトのインポートimport * as Rx from 'rxjs/Rx';

に必要な通常好ましいあなたはそのフォームのより多くの輸入を参照してください理由、それはです。 Rx.フォームは、通常、Rxのライブラリがインポートされていない場合(例えば、プロジェクトがnode環境で構築ないで)見られますが、<script src="...">タグ

EDITから参照される:C.カーンズさんのコメントに答えて:

オブザーバーRxJS 5型定義では、インタフェースです。実装されておらず、javascriptにコンパイルされません。したがって、あなたはその機能を呼び出すことはできません。 Observer<any>として$mouseObserverを宣言し、あなたの場合は

export interface Observer<T> { 
    isUnsubscribed?: boolean; 
    next: (value: T) => void; 
    error: (err: any) => void; 
    complete:() => void; 
} 

と、これは動作するはずです::インターフェースは次のように宣言され

this.$mouseObserver = { 
    next: function (x) { 
    console.log('Next: %s', x); 
    }, 
    error: function (err) { 
    console.log('Error: %s', err); 
    }, 
    complete: function() { 
    console.log('Completed'); 
    } 
}; 
+0

を、これは多くの意味になります。しかし、Observerだけをインポートし、 'this。$ mouseObserver = Observer.create'を使うと、' Observer 'という名前を見つけられず、 'rxjs/Rx'から' Rx.Observer.create'がエラーを返します。 'プロパティオブザーバが型に存在しません –

+0

Observablesも同様ですか?私は 'Rx'を使ってまったく同じ問題を抱えています。 Observableを配列から作成したかったのですが、何らかの形で「Rx」に固執しました。私はここに質問があります@ http:// stackoverflow.com/question/43177833/not-all-to-my-angular-2-application' @Can Nguyenは回答を提供できますか? –

+0

Observable.from([1,2,3])を使用しているときに、推奨されるインポートを使用します。私は 'から'エラーを取得します。 rxjs/add/observable/from''の 'import 'から' from'をインポートすることは役に立ちません。 –