错误:类型"可观察"上不存在属性计时器



代码在

下面
import {Component} from 'angular2/core';
import {Observable} from 'rxjs/Rx';
@Component({
selector: 'my-app',
template: 'Ticks (every second) : {{ticks}}'
})
export class AppComponent {
   ticks =0;
   click(){
      let timer = Observable.timer(2000,1000);
      timer.subscribe(t=>this.ticks = t);
   }
}

但是我遇到了一个错误。错误是在以下行中:

let timer = Observable.timer(2000,1000);

错误的定义是"属性计时器类型上不存在可观察到的类型"为什么我会遇到这样的错误?你怎么看?

那是因为您还没有将timer方法修补到Observable原型中。

更新:RXJS 6.0.0

将创建方法导入静态纯函数:

import { timer } from 'rxjs';
let timer$ = timer(2000,1000);

原始答案:

您有2个选项:

1)用:

修补方法
import 'rxjs/add/observable/timer';

2)将操作员导入静态纯函数:

import { timer } from 'rxjs/observable/timer';
let timer$ = timer(2000,1000);

我个人建议第二种方法。

现在需要直接从 rxjs 库中导入计时器函数,下面的工作正常。10秒后将在控制台中看到"发射"的消息。

import { timer } from 'rxjs';
const numbers = timer(10000);
numbers.subscribe(any => console.log('fired'));

请参阅此链接以获取更多详细信息:https://rxjs-dev.firebaseapp.com/api/index/function/timer

您需要做的就是从库的根文件夹中观察到 import ,因为rxjs的较旧版本不提供RXJS/可观察的可观察类/可观察的类别

import {Observable} from 'rxjs';

如果您需要的只是计时器,则可以使用此功能:

setInterval(() => {
      this.callNecessaryMethod();
    }, this.intervalInMilliSeconds);

这是功能原型:

function setInterval(callback: (...args: any[]) => void, ms: number, ...args: any[]): NodeJS.Timer (+2 overloads)

最新更新