最近,我决定将使用Angular的“快速入门”从头开始创建的大项目迁移到使用Angular CLI 1.5.5的版本 . 现在,我正在解决出现的各种问题,我无法解决这个问题 .
我读到最好使用rxjs的lettable操作符,我做了它并且它工作得很好 . 但是,我也有这些代码行:
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();
});
他们在使用rxjs 5.4.3的先前版本中运行得很好,现在使用rxjs 5.5.2,他们不再使用了,我得到以下错误:
错误错误:未捕获(在承诺中):TypeError:无法读取未定义的属性'apply'TypeError:无法读取未定义的属性'apply'
我试图用 piecesGrouping$[0], piecesGrouping$[1]
替换扩展运算符,因为错误本身没有说明 forkJoin
,然后我得到:
错误错误:未捕获(在承诺中):TypeError:WEBPACK_IMPORTED_MODULE_8_rxjs_Observable.a.forkJoin不是函数TypeError:WEBPACK_IMPORTED_MODULE_8_rxjs_Observable.a.forkJoin不是函数
所以看起来我正在以错误的方式导入 forkJoin
. 我试图从"rxjs/observable/forkJoin"导入它,但它也没有用 .
我错过了什么?
3 回答
不要使用
Observable
修补,直接使用forkJoin
:您应该将其用作功能
import语句更改为
这是作为
5.2
版本的一部分发布的 . 阅读 change logRxJS 6.x使用此导入
import {forkJoin} from 'rxjs'
;正如其他答案所述,它仍然需要作为一个功能使用,因为它现在独立存在 . 文件是here