관측 가능한 .of는 함수가 아닙니다.
수입에 문제가 있습니다.Observable.of
내 프로젝트에서 기능합니다.내 인텔리는 모든 것을 봅니다.내 코드에는 다음이 있습니다.
import {Observable} from 'rxjs/Observable';
제 코드에서는 이렇게 사용합니다.
return Observable.of(res);
아이디어 있어요?
사실 저는 수입품이 엉망입니다.RxJS의 최신 버전에서는 다음과 같이 가져올 수 있습니다.
import 'rxjs/add/observable/of';
Angular >= 6 및 rxjs 버전 6 이상을 사용하는 동안 이 문제가 발생하는 경우 여기에서 답을 참조하십시오. "Could not use Observable.of in RxJs 6 and Angular 6"
간단히 말해서 다음과 같이 가져올 필요가 있습니다.
import { of } from 'rxjs';
그리고 전화하는 대신에
Observable.of(res);
그냥 쓰기
of(res);
완전히 이상하게 들리지만, 저에게는 수입 경로에서 'O'를 대문자로 쓰는 것이 중요했습니다.import {Observable} from 'rxjs/Observable
다음과 같은 오류 메시지가 표시됩니다.observable_1.Observable.of is not a function
관찰 가능 항목을 가져올 경우 현재 상태로 유지rxjs/observable
이상하지만 다른 사람들에게 도움이 되었으면 좋겠습니다.
내 어리석은 실수는 추가하는 것을 잊어버린 것입니다./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';
@Tierry 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';
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에서 () 기능을 이동/변경할 수 있다고 생각합니다.
이것은 제대로 작동할 것입니다. 그냥 시도해 보세요.
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
// "rxjs": "^5.5.10"
import { of } from 'rxjs/observable/of';
....
return of(res)
Angular 5 / Rxjs 5에서 Angular 6 / Rxjs 6으로 업그레이드하시겠습니까?
가져오기 및 인스턴스화를 변경해야 합니다.데미안의 블로그 게시물 확인하기
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);
});
RxJS 6
의 버전 6으로 업그레이드하는 경우RxJS
라이브러리 및 사용하지 않음rxjs-compat
다음 코드를 패키지화합니다.
import 'rxjs/add/observable/of';
// ...
return Observable.of(res);
로 변경해야 합니다.
import { of } from 'rxjs';
// ...
return of(res);
나(Angular 5 & RxJS 5)의 경우 자동 완성 가져오기가 다음을 제안했습니다.
import { Observable } from '../../../../../node_modules/rxjs/Observable';
해야 하는 동안(모든 정적 연산자 포함)from
,of
e.c. 정상적으로 작동하지 않음
import { Observable } from 'rxjs/Observable';
저는 오늘 이 문제를 겪었습니다.종속성을 로드하기 위해 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' }
...
}
시스템 js가 라이브러리를 로드하는 방식에 대한 이 작은 변화가 제 문제를 해결했습니다.
Angular 5+의 경우:
import { Observable } from 'rxjs/Observable';
작동해야 합니다..import { Observer } from 'rxjs/Observer';
만약 당신이 관찰자를 사용하고 있다면, 그것은.
import {<something>} from 'rxjs';
중요한 역할을 하므로 피하는 것이 좋습니다.
import 'rxjs/add/observable/of';
rxjs-compat의 요구 사항을 보여줍니다.
require("rxjs-compat/add/observable/of");
이것을 설치하지 않았습니다.설치자
npm install rxjs-compat --save-dev
다시 실행하면 문제가 해결됩니다.
rxjs
v6,of
는 " 연자를다가합야니다와져로"로 .import { of } from 'rxjs';
요.import {of} from 'rxjs/observable/of';
했습니다.
언급URL : https://stackoverflow.com/questions/36568388/observable-of-is-not-a-function
'programing' 카테고리의 다른 글
UIButton 이미지 + 텍스트 IOS (0) | 2023.05.31 |
---|---|
출력에서 줄 바꿈을 수행하는 방법 (0) | 2023.05.31 |
앱 스토어에서 아이폰 앱 소유권 이전 (0) | 2023.05.31 |
git 버전 제어를 사용하여 파일의 권한만 업데이트 및 커밋 (0) | 2023.05.31 |
텍스트 정보.ToTitleCase가 모든 CAPS 문자열에 대해 예상대로 작동하지 않습니다. (0) | 2023.05.31 |