我的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';

关于angular - 与IntervalObservable一起使用时的"takeWhile is not a function",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47374960/

10-09 17:38