最近我使用了一个很好的适用于node.js的库叫做Kue。
我想更好地理解它是如何工作的,于是我开始阅读它的代码...
然后,我发现了一段代码,我的脑海里立刻浮现出“WTF!!?!@$@!$”这样的字眼...
这是代码:
function get(obj) {
var pending = 0
, res = {}
, callback
, done;
return function _(arg){
switch (typeof arg) {
case 'function':
callback = arg;
break;
case 'string':
++pending;
obj[arg](function(err, val){
if (done) return;
if (err) return done = true, callback(err);
res[arg] = val;
--pending || callback(null, res);
});
break;
}
return _;
};
}
这个被用于如下情况:
exports.stats = function(req, res){
get(queue)
('inactiveCount')
('completeCount')
('activeCount')
('failedCount')
('delayedCount')
('workTime')
(function(err, obj){
if (err) return res.send({ error: err.message });
res.send(obj);
});
};
.
.
.
这些是关于函数的函数吗?它们如何彼此了解?第7行的下划线“_”代表什么意思?
请问有人能帮我理解一下发生了什么吗?:)
_
是函数名。它就像其他函数名一样,只是一个非常简短和奇怪的名字。 - Pokey