2016-09-23 5 views
0

私はthis codeと読んでいます。 RxJSとの最初の出会いです。私は上記の文の意味を推測しようとしているrxjsで `expand 'とは何か

const resolvedAll = updatedPkgJSONs 
    ::map((pkgJson) => ({pkgJson, target: '..', isProd})) 
    ::resolveAll(nodeModules, undefined, isExplicit)::skip(1) 
    ::publishReplay().refCount() 

:ここ

は、関連するコードです。しかし、私はresolveAllの機能で立ち往生しています。ここで

resolveAll機能です:

export function resolveAll (nodeModules, targets = Object.create(null), isExplicit) { 
    return this::expand(({target, pkgJson, isProd = false}) => { 
     // more code 
    }) 
} 

this::expandの意味は何ですか? パラメータが一致する必要がありますか? ({pkgJson, target: '..', isProd}){target, pkgJson, isProd = false}

私はthe documentがあると知っています。しかし、私はドキュメントを私の例に関連付けるのに苦労しています。

+0

@DenysSéguretこんにちは、私は質問を再開したいと思います。私はまだ自分でそれを理解する過程にある。それがどれくらいの時間かかるかはわかりません。 – zjk

答えて

2

このコードではかなりの数の機能があります。

  • bind operatorとして知ら::オペレータは、thisが正しくバインドされていることを確認します。
  • ({arg1, arg2, arg3})非構造演算子
  • isProd = falseは、引数のデフォルト値です。

具体的に、どのようなここに起こっては、this::expandは、expandが受け入れる機能(も高階関数として知られている)の引数としての機能を受け付ける関数があるということであるtargetという名前のプロパティを持つ1つのObject引数を受け入れ、pkgJson、およびオプションでisProd(デフォルトはfalse)。