我正在阅读this code。这是我第一次遇到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}
我知道有the document。但是我很难将文档与我的例子联系起来。
答案 0 :(得分:2)
此代码中有许多功能:
::
运算符(称为 bind operator )将确保this
绑定正确。({arg1, arg2, arg3})
是解构运算符 isProd = false
是参数的默认值。具体来说,这里发生的是this::expand
是一个接受函数作为参数的函数(也称为高阶函数),函数{{ 1}}接受,接受一个Object参数,使用名为expand
,target
和(可选)pkgJson
的属性(默认为false)。