私はang 2でonScrollイベントを聞こうとしていますが、次のコードを作成しましたが、すべてのスクロールイベントが次に呼び出されており、ブラウザのパフォーマンスが低下しています。 observer.next関数は非常に軽量で、サブスクライバでのデバウンスは十分ではあるが、それほど軽くないか、何か間違っていることを望んでいた。誰かが効果的にデバウンスするのを助けることができますか?あなたのコード.debounceTime(400)
で角度2でオブザーバー関数をデバウンスする方法はありますか?
import {Component, Renderer, OnInit} from "@angular/core";
import {Subject, Observable, Observer} from "rxjs";
@Component({
selector: 'heading',
templateUrl: './heading.component.html',
styles: [require('./heading.component.scss')]
})
export class HeadingComponent implements OnInit {
observable: Observable<Event>;
constructor(private renderer: Renderer) {
this.observable = new Observable<Event>(
(observer: Observer<Event>) => {
this.renderer.listenGlobal('window', 'scroll', (evt: Event) => {
observer.next(evt);
})
}
);
}
ngOnInit(): void {
this.observable
.debounceTime(400)
.subscribe(
(evt: Event) => console.log('next event' + evt),
(err: string) => console.error(err),
() => console.info('done')
)
}
}
おかげで、しかし、私がしようとすると私はタイプスクリプトのコンパイルエラーが発生しました - タイプ 'number'の引数がタイプ '(値:イベント)のパラメータに割り当てられません... タイプを同じイベントでイベントからanyに変更しようとしました – SMC