如何使用参数将此函数传递给settimeout?

时间:2018-05-26 07:07:52

标签: javascript node.js settimeout

var test = function(a, b) {   return a + b; }; 
setTimeout(test(2, 3), 3000);

它显示了一些类型错误

2 个答案:

答案 0 :(得分:1)

至少有两种方法可以实现这一目标。 第一个函数只是在作为回调传递给test的新匿名函数内部触发setTimout函数。

第二个使用.bind部分应用test功能。



var test = function(a, b) {
  console.log(a + b);
  return a + b;
};

setTimeout(() => {
  test(2, 3);
}, 3000);

setTimeout(test.bind(null, 2, 3), 3000);




如果你不像我一样喜欢null的第一个(在这种情况下毫无意义)参数.bind,那么你可以使用一些为你提供部分应用功能的库或者你可以编写自己的函数来执行部分应用程序。



const partial = (fn, ...firstArgs) => (...secondArgs) =>
  fn(...firstArgs, ...secondArgs);

var test = function(a, b) {
  console.log(a + b);
  return a + b;
};

setTimeout(partial(test, 2, 3), 3000);




答案 1 :(得分:0)

这是在setTimeout

中调用外部函数的正确方法
let approval_count = data.length;