IT TIP

fromPromise가 Observable 유형에 존재하지 않습니다.

itqueen 2020. 11. 26. 20:37
반응형

fromPromise가 Observable 유형에 존재하지 않습니다.


rxjs를 사용하는 Angular 2에서 Promise를 Observable로 변환하려고했습니다. 온라인 가이드의 많은 켰을 때, 나는 사용 fromPromiseObservable. 오류가 발생합니다.

Property 'fromPromise' does not exist on type 'typeof Observable'.

Observable은 다음과 같이 가져 왔습니다.

import { Observable } from "rxjs/Observable";

fromPromise다른 연산자처럼 가져 오려고 하면 오류가 발생합니다.

import 'rxjs/add/operator/fromPromise';

typescript 오류를 억제하더라도 여전히 오류가 발생합니다.

(<any>Observable).fromPromise

오류:

Uncaught (in promise): TypeError: __WEBPACK_IMPORTED_MODULE_3_rxjs_Observable__.Observable.fromPromise is not a function

여기 rxjs repo 에서 비슷한 문제가보고 되었지만 거기에도 해결책이 없습니다.


최신 정보:

현재 rxjs6.0.0-beta.3, 사업자 및 관찰 제작자가에서 수입해야한다 rxjs. 또한 fromPromise더 이상 공용 API의 일부가 아니며 from메서드에 래핑됩니다 .

TL; DR;

최신 정보

rxjs 6.0.0의 경우 다음을 사용하십시오.

import { from } from 'rxjs';

var observableFromPromise =  from(promiseSrc);

최신 정보:

의 출시 후 pipeable 사업자rxjs5.5.x, 원숭이 패치 방법은 권장하지 않습니다. 정적 메소드 옵션 사용을 고려하십시오.

원래 답변

현재 rxjs5.4.x, fromPromise정적 방법으로 사용될 수 있거나으로 패치 할 수 Observable프로토.

먼저 다음을 수행 할 수 있습니다.

import { fromPromise } from 'rxjs/observable/fromPromise';

var observableFromPromise = fromPromise(promiseSrc);

이 접근 방식에 대한 자세한 정보는 여기

두 번째 작업을 수행하려면 import 문을 변경해야합니다.

import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/fromPromise';

var observableFromPromise = Observable.fromPromise(promiseSrc);

이 접근 방식에 대한 자세한 정보는 여기

개인적으로 두 번째 접근 방식은 기본적으로 첫 번째 접근 방식이고 Observable프로토 타입이 변경 된다는 점을 고려하여 첫 번째 접근 방식을 추천합니다 .


Jota가 '보낸 사람'이 대답 한 것처럼 말입니다.

여기에서 참조를 찾을 수 있습니다

https://www.learnrxjs.io/operators/creation/from.html

그러나 'Promise to Observable'을 지정하려면 아래와 같이 'fromPromise'를 사용할 수 있습니다.

  import { from as fromPromise, Observable} from 'rxjs';
  ...

  private getObservable(): Observable<any> {
    return fromPromise(this.promise);
  }


  private getPromise() {

   this.promise = new Promise((resolve, reject) => {
      this.service.getPromise()
        .then(response => {
          //  do sth
          resolve(response);
        });
    });
}

참고 URL : https://stackoverflow.com/questions/45784825/frompromise-does-not-exist-on-type-observable

반응형