属性间隔在observable类型中不存在

时间:2018-03-30 10:36:40

标签: angular rxjs angular5

ngAfterViewInit(){
     Observable.interval(3000).timeInterval().subscribe()=>{};    
}

尝试调用Observable.interval()方法会引发编译器错误 “可观察类型中不存在属性间隔”。

编辑

import { Observable } from 'rxjs/Observable';

请注意,已包含import语句

4 个答案:

答案 0 :(得分:19)

对于RxJS 6+,Tomasz Kula给出的答案仅适用于使用rxjs-compat包时,该包仅在将应用程序从RxJS 5转换为RxJS 6的过程中使用。

在RxJS 6+中,使用:

import { interval } from 'rxjs';

interval(3000).subscribe(x => /* do something */)

请注意,以前存在于Observable类型的任何Observable创建功能现在都应从'rxjs'导入。

答案 1 :(得分:4)

对于rxjs 5.5.2+它是:

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

用法:

interval(3000).subscribe(x => // do something)

答案 2 :(得分:2)

这对于angular 6.1。+和rxjs 6.2。+都是正确的

import { Observable } from 'rxjs';
import { interval } from 'rxjs';

 interval(1000).subscribe(
         (value: number) => {
           this.secondes = value;
         },
         (error: any) => {
           console.log('error');
         },
         () => {
           console.log('observable completed !');
         }
       );

答案 3 :(得分:0)

import { Observable } from 'rxjs';
import { interval } from 'rxjs';
import { takeWhile } from 'rxjs/operators';

// here 20 (secs) is a reference till when it will get completed
 interval(1000).pipe(takeWhile(value => value < 20)).subscribe(
         (value: number) => {
           this.secondes = value;
         },
         (error: any) => {
           console.log('error');
         },
         () => {
           console.log('observable completed !');
         }
       );

这是有关退订的答案。