哪个代码在JavaScript中表现更好?
我的问题是关系到下面的代码 -哪个代码在JavaScript中表现更好?
方案1:
var queue = []; var busy = false;
exports.getAProfile = function (params, cb) {
queue.push({params: params, cb: cb});
if (!busy) {
checkQueue(function (c, next) {
service.getAProfileNow(c.params, function (err, res) {
c.cb(err,res);
next();
});
});
}
}
function checkQueue(actualTask) {
var c = queue.shift();
if (c) {
busy = true;
actualTask(c, function() {
checkQueue(actualTask);
})
return queue.length;
} else {
busy = false;
return queue.length;
}
}
方案2:
var queue = []; var busy = false;
var actualTask = function (c, next) {
service.getAProfileNow(c.params, function (err, res) {
c.cb(err,res);
next();
});
}
exports.getAProfile = function (params, cb) {
queue.push({params: params, cb: cb});
if (!busy) {
checkQueue();
}
}
function checkQueue() {
var c = queue.shift();
if (c) {
busy = true;
actualTask(c, function() {
checkQueue(actualTask);
})
return queue.length;
} else {
busy = false;
return queue.length;
}
}
差异在这两个代码 -
- 函数
actualTask
是(我猜)在第一个场景中定义了很多次,而在第二个场景中它只定义了一次。
是'我解释'是正确的吗?那哪一个更好?为什么?两种代码的性能是不同的?
注意:service
模块在代码中是require-d,它只查询数据库。
回答:
只定义一次函数不会使性能或执行速度更快。它只会减少你的代码的文件大小,并使你的代码形成得很好。在这两种情况下,函数都必须跳转到过程调用。
以上是 哪个代码在JavaScript中表现更好? 的全部内容, 来源链接: utcz.com/qa/263382.html