回答:
実際、私は台無しにした輸入品を持っています。RxJSの最新バージョンでは、次のようにインポートできます。
import 'rxjs/add/observable/of';
operator/
- rxjs/add/operator/of
代わりに- observable/
。ドー。
Angular 6 / rxjs 6の使用中に誰かがこの問題を抱えている場合は、ここで回答を参照してください: RxJs 6とAngular 6でObservable.ofを使用できませんでした
つまり、次のようにインポートする必要があります。
import { of } from 'rxjs';
そして呼び出す代わりに
Observable.of(res);
ただ使う
of(res);
私のばかげた間違いは、私が/add
オブザーバブルを必要とするときに追加するのを忘れたということでした。
だった:
import { Observable } from 'rxjs/Observable';
import 'rxjs/observable/of';
rxjs/observable/of
実際には、ファイルが存在するため、見た目は問題ありません。
する必要があります:
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
何らかの理由でパッチが機能しなかったため、この方法を使用する必要がありました。
import { of } from 'rxjs/observable/of'
// ...
return of(res)
追加するだけで、
それらの多くを使用している場合は、すべてを使用してインポートできます
import 'rxjs/Rx';
@Thierry Templierが述べたように。しかし、私はあなたが制限された演算子を使用しているなら、あなたは次のような個々の演算子をインポートするべきだと思います
import 'rxjs/add/operator/filter';
import 'rxjs/add/operator/mergeMap';
import 'rxjs/add/observable/of';
@ukszで言及されています。
「rxjs / Rx」は、確実にパフォーマンスを犠牲にするすべてのRxコンポーネントをインポートするためです。
この方法ですべての演算子をインポートすることもできます。
import {Observable} from 'rxjs/Rx';
import { Observable } from 'rxjs/Observable' import 'rxjs/add/observable/of';
が機能しません。のみimport {Observable} from 'rxjs/Rx';
機能します。バージョンは5.4.2
Observable_1.Observable.of(...).delay(...).timeout is not a function
です。私は使用しませんでしたimport 'rxjs/add/operator/timeout'
Angular 5.2とRxJS 5.5.6を使用しています
このコードは機能しませんでした:
import { Observable,of } from 'rxjs/Observable';
getHeroes(): Observable<Hero[]> {
return of(Hero[]) HEROES;
}
以下のコードは機能しました:
import { Observable } from 'rxjs/Observable';
import { Subscriber } from 'rxjs/Subscriber';
getHeroes(): Observable<Hero[]>
{
return Observable.create((observer: Subscriber<any>) => {
observer.next(HEROES);
observer.complete();
});
}
呼び出し方法:
this.heroService.getHeroes()
.subscribe(heroes => this.heroes = heroes);
RxJS 5.5.2で機能が移動/変更された可能性があると思います
// "rxjs": "^5.5.10"
import { of } from 'rxjs/observable/of';
....
return of(res)
Angular 5 / Rxjs 5からAngular 6 / Rxjs 6にアップグレードしましたか?
インポートとインスタンス化を変更する必要があります。Damienのブログ投稿をご覧ください。
Tl; dr:
import { Observable, fromEvent, of } from 'rxjs';
const yourResult = Observable
.create(of(yourObservable))
.startWith(null)
.map(x => x.someStringProperty.toLowerCase());
//subscribe to keyup event on input element
Observable
.create(fromEvent(yourInputElement, 'keyup'))
.debounceTime(5000)
.distinctUntilChanged()
.subscribe((event) => {
yourEventHandler(event);
});
今日私はこの問題を抱えていました。systemjsを使用して依存関係をロードしています。
私はこのようにRxjsをロードしていました:
...
paths: {
"rxjs/*": "node_modules/rxjs/bundles/Rx.umd.min.js"
},
...
パスを使用する代わりに、これを使用します。
var map = {
...
'rxjs': 'node_modules/rxjs',
...
}
var packages = {
...
'rxjs': { main: 'bundles/Rx.umd.min.js', defaultExtension: 'js' }
...
}
systemjsがライブラリをロードする方法のこの小さな変更は、私の問題を修正しました。
どういうわけかウェブストームでさえこのようにしimport {of} from 'rxjs/observable/of';
、すべてが機能し始めました
import { of } from 'rxjs'; return of(res);
rxjs6を使用している場合は、最新のドキュメントを確認してください。github.com / ReactiveX