我正在阅读这段代码。这是我第一次接触RxJS。
相关代码如下:
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}
我知道有文件。但是我很难把这个文档和我的例子联系起来。
在这段代码中有相当多的特性:
-
::
操作符,即绑定操作符将确保this
被正确绑定。 -
({arg1, arg2, arg3})
是析构操作符 -
isProd = false
是参数的默认值。
具体来说,这里发生的事情是this::expand
是一个接受函数作为参数的函数(也称为高阶函数),函数expand
接受一个对象参数,其属性名为target
, pkgJson
和isProd
(可选)(默认为false)。