以下は、RxJS "スロットル"演算子を使用しようとしている私のコンポーネントコードです。角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秒の最小間隔がある場合にのみ、「クリック...」を印刷することです。
このコードをコンパイルすると、以下のエラーが表示され、 ".throttle(1000)"という行が表示されます。
'number'型の引数は、 '(値:{})=> 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タイプスクリプト宣言を使用していますか?あなたのコードは私にとってうまく見えます。それは宣言ファイルが悪いと私に信じさせます。ここでもtypescript宣言ファイルからのスロットル宣言をペーストできますか? –
@JB Nizet throttleTimeが機能しました。 – refactor