Angular 5 rxjs 5.5.2 - 输入间隔错误 - "无法读取属性' call'未定义"

时间:2018-01-17 17:33:01

标签: angular rxjs

我收到错误"无法读取属性'来电'未定义"在尝试导入" Interval"

我的进口商品是:

import { Observable } from 'rxjs/Observable';   
import 'rxjs/add/observable/merge';   
import 'rxjs/add/observable/of';   
import 'rxjs/add/operator/catch';   
import 'rxjs/add/operator/map';   
import 'rxjs/add/operator/startWith';   
import 'rxjs/add/operator/switchMap';   
import 'rxjs/add/operator/debounceTime';   
import 'rxjs/add/observable/interval';

如果我删除最后一次导入,它可以正常工作。

我在控制台中出现此错误

  

未捕获的TypeError:无法读取属性' call'未定义的       在 webpack_require (inline.bundle.js:55)       在eval(home.component.ts:12)       at Object ... / .. / .. / .. / .. / src / app / home / home.component.ts(main.bundle.js:134)       在 webpack_require (inline.bundle.js:55)       在eval(app.module.ts:23)       at Object ... / .. / .. / .. / .. / src / app / app.module.ts(main.bundle.js:52)       在 webpack_require (inline.bundle.js:55)       在eval(main.ts:4)       at Object ... / .. / .. / .. / .. / src / main.ts(main.bundle.js:394)       在 webpack_require (inline.bundle.js:55)    webpack_require @ inline.bundle.js:55(匿名)@ home.component.ts:12 ../../../../../src/app/home/home。 component.ts @   main.bundle.js:134    webpack_require @ inline.bundle.js:55(匿名)@ app.module.ts:23 ../../../../../src/app/app.module。 ts @   main.bundle.js:52    webpack_require @ inline.bundle.js:55(匿名)@main.ts:4 ../../../../../src/main.ts @main.bundle。 JS:394    webpack_require @ inline.bundle.js:55 0 @main.bundle.js:409    webpack_require @ inline.bundle.js:55 webpackJsonpCallback @ inline.bundle.js:26(匿名)@main.bundle.js:1

更新 我想也许问题是使用间隔?我尝试使用计时器如下,它工作。

import { timer } from 'rxjs/observable/timer';  

var numbers = timer(5000);
numbers.subscribe(x => console.log(x));

但这会产生"无法阅读财产'来电'未定义"

import { interval } from 'rxjs/observable/interval';

var numbers = interval(1000);
numbers.subscribe(x => console.log(x));

1 个答案:

答案 0 :(得分:0)

Pipeable运算符是导入和使用rxjs运算符的新方法。有关详细信息,请查看rxjs docs

import { map, filter, scan } from 'rxjs/operators';
source$.pipe(
  filter(x => x % 2 === 0),
  map(x => x + x),
  scan((acc, x) => acc + x, 0)
)

可以直接导入和使用其他运算符(例如创建Observable):

import { combineLatest } from 'rxjs/observable/combineLatest';

combineLatest(this.first$, this.second$, (first, second) => ({first, second}))