type tipo propiedad property not frompromise from existe exist does angular promise rxjs observable es6-promise

angular - propiedad - fromPromise no existe en el tipo Observable



promise to observable angular 6 (2)

En Angular 2 usando rxjs, estaba tratando de convertir una Promesa en Observable. Como muchas guías en línea mostraron que utilicé desde fromPromise on Observable . Que arroja error:

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

Observable fue importado como:

import { Observable } from "rxjs/Observable";

intentar importar desde fromPromise como otros operadores da como resultado un error:

import ''rxjs/add/operator/fromPromise'';

incluso si suprimo el error mecanografiado, todavía se produce un error:

(<any>Observable).fromPromise

Error:

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

Se informó un problema similar en el repositorio de rxjs here pero tampoco hay solución allí.


como lo que Jota dijo ''de'' es la respuesta.

puedes encontrar la referencia desde aquí

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

Sin embargo, si desea especificar ''Promesa de observación'', puede usar ''fromPromise'' como se muestra a continuación.

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); }); }); }


ACTUALIZAR:

A partir de rxjs 6.0.0-beta.3, los operadores y creadores observables deben importarse desde rxjs . Además, fromPromise ya no es parte de la API pública y está envuelto en el método from .

TL; DR;

ACTUALIZAR

Para rxjs 6.0.0 use:

import { from } from ''rxjs''; var observableFromPromise = from(promiseSrc);

ACTUALIZAR:

Después del lanzamiento de los operadores canalizables en rxjs 5.5.x, se desaconseja encarecidamente el enfoque de parche de mono. Considere usar la opción de método estático.

Respuesta original

A partir de rxjs 5.4.x, fromPromise puede usarse como un método estático o puede parchearse en el prototipo Observable .

Para el primero, puede hacer lo siguiente:

import { fromPromise } from ''rxjs/observable/fromPromise''; var observableFromPromise = fromPromise(promiseSrc);

Más información sobre este enfoque here

Para hacer lo segundo, debe cambiar su declaración de importación:

import { Observable } from ''rxjs/Observable''; import ''rxjs/add/observable/fromPromise''; var observableFromPromise = Observable.fromPromise(promiseSrc);

Más información sobre este enfoque here

Personalmente, recomendaría el primero, considerando que el segundo enfoque es básicamente el primero, con la diferencia de que el prototipo Observable cambia.