使用javascript进行功能编程:提取第n个参数并将其作为参数发送给函数

时间:2015-06-08 08:47:18

标签: javascript node.js functional-programming underscore.js

让我们说我有一个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)时才有效。

还有:使用下划线库可能有更好的方法来解决这个问题吗?或者:我可能不得不换另一个。

0 个答案:

没有答案