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 过滤器运算符不适用于 Angular2 Observable
在 Angular2 中使用 RxJS 链接 observables