我有以下代码片段,我想从重复的代码中重构(创建一个函数)。
function add(logger, client, args, callback) {
client.execute('some command', args, function (err, result) {
if (err) {
logger.error({err: err});
return callback(err);
}
// do more...
logger.debug({result: result});
return callback(null, result);
});
}
我对client.execute的所有异步调用都有内部回调重复。我想把它拉出来并用它来制作一个功能。所以它需要采用参数,记录器和回调函数。
如何制作一个功能呢? 之后,添加的功能会是什么样的?
答案 0 :(得分:2)
如果您稍微更改了代码中的顺序,则可以像这样重构:
function logAndCallback(err, result, callback) {
if (err) {
logger.error({err: err});
return callback(err);
}
logger.debug({result: result});
return callback(null, result);
}
function add(logger, client, args, callback) {
client.execute('some command', args, function (err, result) {
if (!err) {
// do more...
}
return logAndCallback(err, result, callback);
});
}