javascript - 如何在 1-arg javascript 函数中使用 2 个参数?

标签 javascript closures nested-function

我正在使用node.js 中的http 模块来读取url。 http.get 函数有 this signature :

http.get(options[, callback])

回调函数采用单个参数 res。如果我想在回调中使用额外的对象/函数,我该怎么办?我可以考虑像这样内联 get 调用:

outerFunction = function(xyz) {
  http.get(options, (res) => {
    // do stuff with xyz here
    xyz(res.blah);
  }
});

但是如果我的回调变得很长,我想在某处预先声明它:

myCallback = function(xyz) {
  return function(r) { xyz(r.blah); };
}

并像这样调用 myCallback:

outerFunction = function(xyz) {
  http.get(options, (res) => {
    myCallback(xyz)(res);
  });
}

但这看起来 super 笨拙,而且只能绕过 1-arg 回调限制。

还有更好的方法吗?谢谢!

最佳答案

你可以使用这段代码,因为myCallback返回一个函数,然后在获取资源后,http会自动将资源传递给xyz。

outerFunction = function(xyz) {
   http.get(options,myCallback(xyz));
}

关于javascript - 如何在 1-arg javascript 函数中使用 2 个参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42510971/

相关文章:

javascript - 闭包真正指的是什么?

javascript - 为什么返回函数时要修复 'this'?

javascript - JS : Using an argument passed to a function directly as a parameter of a nested function

javascript - 在External js和React js/Redux之间传递数据

javascript - 克隆一个 div 并更改它的 ID 以及它的所有子项以使其唯一

swift - 使用 self 和 unown self 进行延迟初始化,

c - GNU C 中的激活记录(嵌套函数)

javascript - 未捕获的 TypeError : Cannot read property 'appendChild' of null. 在我的代码中找不到错误

javascript - 从二进制到字符码再到文本 javascript

c++ - 在 C++ 中,函数是否可以访问直接外部作用域中的变量,而无需向函数输入参数?