Niedawno zdecydowałem się na migrację dużego projektu, który został stworzony od zera z "Quick Start" Angular do wersji wykorzystującej Angular CLI 1.5.5. Teraz naprawiam różne problemy, które się pojawiają i nie mogę tego naprawić.Nie mogę już używać forkdalein z rxjs 5.5.2
Czytałem, że lepiej jest używać operatorów serwerów rxjs, co zrobiłem i działa to bardzo dobrze. Jednak mam również te linie kodu:
import { Observable } from "rxjs/Observable";
import "rxjs/add/observable/forkjoin";
...
let piecesGrouping$: Observable<IGroupedPiece[]>[] = deliveries.map(delivery => this._pieceService.getGroupedPieces(delivery.pieces));
Observable
.forkJoin(...piecesGrouping$)
.subscribe((groups) => {
groups.forEach((group, i) => deliveries[i].groupedPieces = group);
resolve();
});
Oni pracują bardzo dobrze w poprzedniej wersji, która została przy użyciu rxjs 5.4.3, teraz z rxjs 5.5.2, nie więcej i uzyskać następujący błąd:
ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'apply' of undefined TypeError: Cannot read property 'apply' of undefined
próbowałem zastąpić operatora rozpowszechniane przez piecesGrouping$[0], piecesGrouping$[1]
jako błąd nie mówią nic o forkJoin
sam w sobie, a następnie uzyskać:
ERROR Error: Uncaught (in promise): TypeError: WEBPACK_IMPORTED_MODULE_8_rxjs_Observable.a.forkJoin is not a function TypeError: WEBPACK_IMPORTED_MODULE_8_rxjs_Observable.a.forkJoin is not a function
Wygląda więc na to, że importuję niewłaściwy sposób: forkJoin
. Próbowałem zaimportować go z "rxjs/observable/forkJoin", ale to też nie działało.
Czego mi brakuje?
@ssougnez, nie ma za co. Jak sugerowałem, nie używaj importowania łatek. Użyj operatorów do wynajęcia dla operatorów instancji i operatorów statycznych bezpośrednio. –