私はobservablesのnoobieです。私はダブルクリックすると発生する2クリックイベントを無視するためにobservable clickstreamを作成しようとしていますが、このエラーが発生しています: -なぜバッファーが関数エラーではないのですか
Unhandled Promise rejection: this.clickStream.buffer is not a function ; Zone: <root> ; Task: Promise.then ; Value: TypeError: this.clickStream.buffer is not a function
と私は理由を理解していません。次のように
コードは次のとおりです。 - 私はこれをテストするためにAngular + Typescript Demo Plunk
を使用してきた
import {Component, NgModule} from '@angular/core';
import {BrowserModule} from '@angular/platform-browser';
import {Subject} from 'rxjs/Subject';
import {Observable} from 'rxjs/Observable';
@Component({
selector: 'my-app',
template: `
<div>
<button (click)="clickStream.next(1)">Click me!</button>
</div>
`,
})
export class App {
clickStream: Observable<number> = new Subject<number>();
singleClick;
constructor() {
this.singleClick = this.clickStream.buffer(() => this.clickStream
.debounce(250))
.map(arr => arr.length)
.filter(len => len != 2);
this.singleClick.subscribe(console.log.bind(console));
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ App ],
bootstrap: [ App ]
})
export class AppModule {}
。
インポート 'rxjs/add/operator/buffer'; ? – Maxime
これは、すべての演算子をインポートすることでエラーを取り除きましたが、ボタンを押すと何も起こりません。同様のコードが 'codepen.io'で正常に動作していました。これを' angular/typescript'コードとして動作させようとしています。 – user223364