我正在尝试理解以下函数返回的内容:
fs.api.services.wrapOnSuccess_ = function(a, b, c) {
if (b) return c = c || function() {},
function(d, e, f) {
fs.isDefinedAndNotNull(d.debugtrace) && fs.api.services.handleDebugTrace_(d.debugtrace);
200 == d.meta.code ? (fs.api.getLogger().debug("success"),
b(a(d.response), fs.api.services.rawBundleSuccess_(d, e, f))) :
(fs.api.getLogger().error("non 200 meta code on api response", d), c(d.meta, fs.api.services.rawBundleSuccess_(d, e, f)))
}
它是否正确返回三元函数,因为function(d,e,f){..}
位于逗号右侧?如果是这样,是否意味着对wrapOnSuccess_
的调用应该类似于wrapOnSuccess_(x,y,z)(s,t,u)
?
答案 0 :(得分:0)
这是缩小的代码。它并不意味着在典型意义上被理解。
就其返回的内容而言,如果b
是真实的,那么在function(d, e, f) {
分配给c
之后,如果c
,它将返回c
函数对于c
来说,除了无操作函数之外,还有其他功能。
所以是的,如果 b
是真的,你可以立即调用的返回值。看起来我们错过了其他功能。
请记住,逗号运算符的所有运算符的优先级最低。这应该有助于解决问题。