現在、Angular2とObservableオブジェクトに問題があります。
サービスを呼び出すコンポーネントがあります。APIにリンクされている実際のコンポーネントと、偽のサービスです。
APIにリンクされたサービスは正常に機能しますが、偽のサービスを使用する場合、Observableオブジェクトから配列を返したいのですが、このエラーが発生します。「Observable_1.Observable.fromArrayは関数ではありません」
ここに私のコードがあります:
コンポーネント
this._raceService.list().subscribe(newRaces => {
this.races = newRaces;
});
実際のサービス:
list(){ return this._http.get('http://dev.backend.com/api.php', options).map(res => res.json()); }
偽のサービス:
list() { return Observable.fromArray([{ name: 'London' }]); }
Plzを手伝ってもらえますか?
乾杯
それは...
Rx.Observable.from(yourarray)
fromArrayは非推奨のようです
Observable.fromArray()
はRxJSバージョン5で削除され、from()
を使用します
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/from';
...
Observable.from([1, 2, 3, 4]);
RxJS 6用に回答を更新する必要があります
import {from} from 'rxjs';
const observable = from([ { a: 1, b: 2 } ]);
私のコードでいくつかの研究をした後、私は同じ問題を抱えていました...
インポートしました:
import {Observable} from "rxjs/Observable";
の代わりに:
import {Observable} from "rxjs/Rx";
それが他の誰かを助けることを願っています。
私は同じ問題を抱えていたので、このインポートステートメントをコンポーネントに追加する必要がありました。
import 'rxjs/add/observable/fromArray';
参照しているRx.js
ファイルでfromArray
を検索して追加するインポートを見つけました(プロジェクト内に異なるバージョンのファイルがある可能性があるため注意してください)。
System.register("rxjs/add/observable/fromArray", ["rxjs/Observable", "rxjs/observable/ArrayObservable"], true, function(require, exports, module) {
// ...
});
同じ問題がありました。 fromArrayが非推奨になったため、これを取得していると思われます。
rxjs/Observableをインポートして、不要なrxjsの他の部分をインポートしないようにします
import { Observable } from 'rxjs/Observable';
fromArrayは廃止されました。代わりに使用
list() { return Observable.from([{ name: 'London' }]); }
これを試して:
import {from} from 'rxjs/observable/from';
...
const promiseSource = from(new Promise(resolve => resolve( 'Hello World!'))); https://learnrxjs.io/operators/creation/from.html