Ich habe mein Winkelprojekt und alle meine Abhängigkeiten auf die neueste Version aktualisiert. Ohne große Schwierigkeiten habe ich die meisten Abhängigkeiten gelöst, aber ich bin immer noch bei RxJs. Hier ist meine package.json:
"dependencies": {
"@angular-devkit/build-angular": "^0.6.0",
"@angular/animations": "^6.0.0",
"@angular/common": "^6.0.0",
"@angular/compiler": "^6.0.0",
"@angular/core": "^6.0.0",
"@angular/forms": "^6.0.0",
"@angular/http": "^6.0.0",
"@angular/platform-browser": "^6.0.0",
"@angular/platform-browser-dynamic": "^6.0.0",
"@angular/router": "^6.0.0",
"angular-bootstrap-md": "^6.0.1",
"core-js": "^2.5.5",
"font-awesome": "^4.7.0",
"rxjs": "^6.1.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
"@angular/cli": "~6.0.0",
"@angular/compiler-cli": "^6.0.0",
"@angular/language-service": "6.0.0",
"@types/jasmine": "~2.8.3",
"@types/jasminewd2": "~2.0.3",
"@types/node": "~6.0.60",
"codelyzer": "^4.0.1",
"electron": "^1.8.3",
"jasmine-core": "~2.8.0",
"jasmine-spec-reporter": "~4.2.1",
"karma": "~2.0.2",
"karma-chrome-launcher": "~2.2.0",
"karma-coverage-istanbul-reporter": "^1.4.2",
"karma-jasmine": "~1.1.2",
"karma-jasmine-html-reporter": "^1.0.0",
"protractor": "~5.3.1",
"ts-node": "~6.0.2",
"tslint": "~5.10.0",
"TypeScript": "~2.7.2"
Ich importiere nur von RxJs zu Modulen:
import { fromPromise } from 'rxjs/observable/fromPromise';
import { Subscription } from 'rxjs/Subscription';
Sie geben beide den gleichen Fehler:
[ts] Module '"***/node_modules/rxjs/Subscription"' has no exported
member 'Subscription'.
Es ist genau dasselbe für fromPromise
. Hier ist die Fehlermeldung, die ich von Subscribtion.d.ts
bekomme (ich habe den Code in keiner Weise geändert)
AKTUALISIEREN:
Die Antworten unten haben das Problem mit dem Abonnement gelöst, aber fromPromise
gibt immer noch das gleiche Problem an, obwohl es korrekt exportiert wurde:
export * from 'rxjs-compat/observable/fromPromise';
Mit RxJS 6 gibt es viele bahnbrechende Änderungen. Zum Beispiel Prototyp-Methoden als
myObservable.map(data => data * 2)
funktioniert nicht mehr und muss durch ersetzt werden
myObservable.pipe(map(data => data * 2))
Alle Details finden Sie hier: https://github.com/ReactiveX/rxjs/blob/master/docs_app/content/guide/v6/migration.md
Bis Sie alle grundlegenden Änderungen behoben haben, können Sie Ihren alten Code mit rxjs-compat
( https://github.com/ReactiveX/rxjs/tree/master/compat ) wieder in Betrieb setzen.
Dieses Paket ist für die Abwärtskompatibilität mit RxJS .__ erforderlich. vor Version 6. Es enthält die Importe zum Hinzufügen von Operatoren zu
Observable.prototype
und Erstellungsmethoden fürObservable
.
Geben Sie Folgendes ein, um es zu installieren:
npm install -s rxjs-compat
Sie können es damit beheben:
importiere { from } von 'rxjs';
Und statt: Return Observable.fromPromise (neues Versprechen ((beheben, ablehnen)) => {
Jetzt mach einfach:
return from (neues Versprechen ((beheben, ablehnen)) => {
Gleiches gilt für Observable.of
Ich hoffe, Ihr Problem löst sich mit der folgenden Anweisung import Subscription from 'rxjs'
afaik Angular 6 und rxjs 6 sind nicht bereits kompatibel. Für die von ihnen erstellte Kompatibilität https://www.npmjs.com/package/rxjs-compat müssen Sie installieren
[UPDATE] FromPromise ist jetzt "von" . Siehe hier: https://github.com/ReactiveX/rxjs/issues/3525