让我们说我有一个API,它为我提供了一个功能,必须增加两个参数:"设置"对象和回调函数,将发送3个参数。
作为node.js中的请求包的一个例子:
var request = require("request");
request({
uri: "http://www.something.com"
}, function(error, response, body) {
doSth(body);
});
正如您所看到的,我唯一想要的是提取响应的主体并进一步处理它。
该任务是否有更短的解决方案"提取一个参数并将其发送到函数"?。以下是方法:
var arg2funct =
function arg2funct(nr, funct) {
return function() {
funct(arguments[nr]);
}
}
request({ uri: "http://www.something.com" }, arg2funct(2, doSth) );
或者使用下划线:
__ = require("underscore");
var arg2funct = function(nr, funct, x, y, z) { funct(arguments[nr+2]); };
request({ uri: "http://www.something.com" }, __.partial(arg2funct, 2, doSth) );
现在的问题是:该功能如何变得更加通用?因为这个只有在回调等待3个参数(x,y,z)时才有效。
还有:使用下划线库可能有更好的方法来解决这个问题吗?或者:我可能不得不换另一个。