【问题标题】:Property 'interval' does not exist on type 'Observable<any>''Observable<any>' 类型上不存在属性 'interval'
【发布时间】:2017-08-10 16:10:12
【问题描述】:

我的 Angular2 组件类的构造函数中有以下代码:

Observable.from([1,2,3]).interval(2000).subscribe(e=>{
         console.log(e);
       });

我导入了以下内容:

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

我在使用 Angulat CLI 构建项目时收到以下错误消息:

Property 'interval' does not exist on type 'Observable<any>

我错过了什么?

【问题讨论】:

标签: angular rxjs


【解决方案1】:

没错。 interval 方法是只存在于Observable 类上的静态方法。换句话说,它不是运算符。

所以你可能想要delaytimeout

Observable.from([1,2,3])
    .concatMap(val => Observable.of(val).delay(2000))

【讨论】:

  • 是的,你让我明白间隔不能使用,谢谢。但是,有什么替代方法可以让数组元素在某个间隔内逐个发出呢? (延迟和超时似乎将整个序列延迟了一定时间)
  • @coder 这是对如何使用delay 运算符的常见误解。所有值一个接一个地发出,并且延迟一个接一个地应用,而无需等待前一个项目被重新发出。因此,您必须使用例如concatMap() 等到前一个值被延迟然后继续。查看我的更新。
  • @coder 请看看这个问题,它对你有帮助。 here you go
猜你喜欢
  • 1970-01-01
  • 2017-10-20
  • 2016-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-26
  • 2019-01-25
  • 2018-11-16
相关资源
最近更新 更多