Angular2 rxjs 缺少 observable.interval 方法

Posted

技术标签:

【中文标题】Angular2 rxjs 缺少 observable.interval 方法【英文标题】:Angular2 rxjs missing observable.interval method 【发布时间】:2016-09-01 15:38:01 【问题描述】:

我正在尝试使用可观察对象的间隔方法,但我不断收到错误

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

我添加了这些导入:

import "rxjs/Rx";
import "rxjs/add/observable/interval";
import "rxjs/observable/IntervalObservable";

【问题讨论】:

【参考方案1】:

您需要以这种方式导入Observable 类才能使用interval 方法:

import Observable from 'rxjs/Rx';

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

【讨论】:

从错误消息中你已经可以理解我已经导入了 Observable 类......就像我在我的问题中所说的那样,我已经有了 import 'rxjs/add/observable/interval';进口的。 import Observable from 'rxjs/Rx'; 肯定有效 ;-) 这是另一种方法:import 'rxjs/add/observable/interval'; observable.d.ts 甚至不包含 angular2 beta 的间隔方法,所以这没有任何意义,在任何情况下都不能解决问题,因为我在打开之前已经这样做了问题。 你使用哪个版本的 Angular / Rxjs?它适用于我 Angular2 RC1 和 Rxjs 5.0.0-beta.6... 我尝试将其用作非静态方法,我一生都无法理解您为什么要将其设为静态方法。【参考方案2】:

如果你想用rxjs v6.2.1 创建一个interval(Observable):

import  interval  from 'rxjs';
// instead of:
// import  Observable  from 'rxjs/Observable';
// import 'rxjs/add/observable/interval';

const counter = interval(1000); 

// instead of:
// const counter = Observable.interval(1000);

【讨论】:

【参考方案3】:

这也是可能的,因为:

“rxjs”:“6.3.3” "rxjs-compat": "^6.5.5"

import  Component, OnInit  from '@angular/core';
import  interval  from 'rxjs';

@Component(
  selector: 'app-home',
  templateUrl: './home.component.html',
  styleUrls: ['./home.component.css']
)
export class HomeComponent implements OnInit 

  constructor()  

  ngOnInit() 
    const myNumber = interval(1000);
    myNumber.subscribe(
      (number: number) => 
        console.log(number);
      
    );
  


【讨论】:

【参考方案4】:

import Observable from 'rxjs/Observable';
import 'rxjs/Rx'

  printX:number;
  ngOnInit() 
    const myInterval = Observable.interval(1000);
    myInterval.subscribe((x : number)=>
      this.printX=x;
    );

    

【讨论】:

这与 Thierry Templier 的 answer 有何不同?【参考方案5】:
import  Observable  from 'rxjs/Observable';
import 'rxjs/add/observable/interval';
//This would help 'rxjs/add/observable/interval'
//import interval from 
ngOnInit() 
    const myNumber = Observable.interval(1000);
    myNumber.subscribe(
      (number: number) => 
        console.log(number);
      
    );

【讨论】:

以上是关于Angular2 rxjs 缺少 observable.interval 方法的主要内容,如果未能解决你的问题,请参考以下文章

取消订阅 RxJS Observables

Rxjs 过滤器运算符不适用于 Angular2 Observable

在 Angular2 中使用 RxJS 链接 observables

angular2 学习笔记 ( rxjs 流 )

Angular2 RxJS 得到“Observable_1.Observable.fromEvent 不是函数”错误

[Angular2 Form] Use RxJS Streams with Angular 2 Forms