以下是我嘗試使用RxJS「節流」操作符的組件代碼。如何在Angular 2中使用RxJS「節流」操作符
import { Component , OnInit , OnChanges , DoCheck } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/observable/fromEvent';
import 'rxjs/add/operator/throttle';
@Component({
selector:'rx1',
template: `
<h2> Rx1 Component </h2>
<button name="btn" valur="click">
})
export class Rx1Component implements OnInit {
ngOnInit() {
var button = document.getElementsByTagName('button');
Observable.fromEvent(button, 'click')
.throttle(1000)
.subscribe(() => console.log('clicked....'));
}
}
這個簡單示例的目的是僅當點擊之間存在1秒的最小間隔時打印「clicked ....」。
但是,當我編譯此代碼時,它顯示下面的錯誤,它指向「.throttle(1000)」行。
'number'類型的參數不能分配給'(value:{})=> SubscribableOrPromise'類型的參數。
我在做什麼錯誤。
那麼,看看油門的文檔。它不期望持續時間作爲參數:http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-throttle。也許你想throttleTime:http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#instance-method-throttleTime –
你使用的是什麼版本的rxjs打字稿聲明?你的代碼對我來說看起來很好,這讓我相信這個聲明文件是不好的。你能否在這裏粘貼打字稿聲明文件中的節流聲明? –
@JB Nizet throttleTime已經奏效。 – refactor