なぜ我々は2つのフィルタを使用していますか?

OPV:

なぜ我々は1の代わりに、以下のコードでは2つのフィルタを使用していますか?

 fromEvent<MouseEvent>(this.mapElement, "click")
    .pipe(
        filter(e => !this.props.disableEvents),
        filter(_ => !this.mouseState.moved && mouseDownInMap)
    )
    .subscribe(e => {});

何故なの:

fromEvent<MouseEvent>(this.mapElement, "click")
    .pipe(filter( e => !this.props.disableEvents && !this.mouseState.moved && mouseDownInMap))
    .subscribe(e => {});

また、なぜ我々は必要.pipe()、それはあまりにもパイプなしで動作するかどうか?

Dai :

あなたはできる単一にそれらを組み合わせますfilter

水平スクロールを避けるために - しかし、コードの保守のために、それは彼らが概念的に無関係だ場合は特に、二つの別々のフィルタ機能を読み取るために、多くの場合簡単です。

もう一つの理由は、フィルタ機能自体はあなたが別の使用する必要があります。その場合には他の場所で定義することができるということですfilter。とにかく電話を

たとえば、

function whenEventsAreEnabled( e ) {
    return !this.props.disableEvents;
}

function whenMouseIsInMap( e ) {
    !this.mouseState.moved && mouseDownInMap
}

fromEvent<MouseEvent>(this.mapElement, "click")
    .pipe(
        filter( whenEventsAreEnabled ),
        filter( whenMouseIsInMap )
    )
    .subscribe(e => {});

また、なぜ我々は必要な.pipe()ことはせずに動作するかどうかpipe、あまりにも?

あなたは行う必要があるとpipeあなただけの取得、離れてすることができます使用することなく、pipeあなたがRxJSを使用している場合は、下位互換モード現代RxJSは常に必要とpipe()値/オブジェクト放出され、観察者のためのパイプラインを作成します

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=21957&siteId=1