我在Angular 2代码中有这个简单的设置:
IntervalObservable.create(5000) .takeWhile(() => this.spinnerOn) // only fires when component is alive .subscribe(() => { this.httpService.pollResults() .subscribe(data => { console.log(data); }); });
代码编译,我可以看到我的IDE(IDEA)中的rxjs节点模块使用的takeWhile.d.ts.但是当应用程序运行时,我在控制台中看到此错误:
ERROR TypeError: __WEBPACK_IMPORTED_MODULE_3_rxjs_observable_IntervalObservable__.a.create(...).takeWhile is not a function
我究竟做错了什么?
你需要导入takeWhile运算符:
import 'rxjs/add/operator/takeWhile';
如果您使用的是rxjs 5.5及以上版本
import { takeWhile } from 'rxjs/operators';