In Angular 2 habe ich mit rxjs versucht, ein Versprechen in Observable umzuwandeln. Da viele Online - Führer zeigte verwendete ich fromPromise
auf Observable
. Was Fehler wirft:
Property 'fromPromise' does not exist on type 'typeof Observable'.
Observable wurde wie folgt importiert:
import { Observable } from "rxjs/Observable";
Der Versuch, fromPromise
wie andere Operatoren zu importieren , führt zu folgenden Fehlern:
import 'rxjs/add/operator/fromPromise';
Selbst wenn ich einen Typoskriptfehler unterdrücke, führt dies immer noch zu einem Fehler:
(<any>Observable).fromPromise
Error:
Uncaught (in promise): TypeError: __WEBPACK_IMPORTED_MODULE_3_rxjs_Observable__.Observable.fromPromise is not a function
Ein ähnliches Problem wurde hier auf rxjs repo gemeldet , aber es gibt auch dort keine Lösung.
Antworten:
AKTUALISIEREN:
Ab
rxjs
6.0.0-beta.3 sollten Operatoren und beobachtbare Ersteller aus importiert werdenrxjs
. Darüber hinausfromPromise
ist es nicht mehr Teil der öffentlichen API und wird in diefrom
Methode eingeschlossen.TL; DR;
AKTUALISIEREN
Für rxjs 6.0.0 verwenden Sie:
AKTUALISIEREN:
Nach der Veröffentlichung der Pipeline-Operatoren in
rxjs
5.5.x wird vom Affen-Patch-Ansatz dringend abgeraten. Erwägen Sie die Verwendung der statischen Methodenoption.Ursprüngliche Antwort
Ab
rxjs
5.4.xfromPromise
kann als statische Methode verwendet oder in denObservable
Prototyp gepatcht werden .Zum ersten können Sie Folgendes tun:
Weitere Informationen zu diesem Ansatz finden Sie hier
Um das zweite zu tun, müssen Sie Ihre Importanweisung ändern:
Weitere Informationen zu diesem Ansatz finden Sie hier
Persönlich würde ich den ersten empfehlen, wenn man bedenkt, dass der zweite Ansatz im Grunde der erste ist, mit dem Unterschied, dass der
Observable
Prototyp geändert wird.quelle
wie das, was Jota 'von' sagte, ist die Antwort.
Die Referenz finden Sie hier
https://www.learnrxjs.io/operators/creation/from.html
Wenn Sie jedoch "Promise to Observable" angeben möchten, können Sie "fromPromise" wie unten verwenden.
quelle