답변:
실제로 수입품이 엉망이되었습니다. 최신 버전의 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);
Angular 6/7을 사용하는 경우
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'; return of(res);
rxjs6을 사용하는 경우 최신 문서를 확인하십시오. github.com/ReactiveX/rxjs/blob/master/MIGRATION.md#import-paths & github.com/ReactiveX/rxjs/blob/master/…