类型错误[ERR_INVALID_CALLBACK]

问题描述 投票:0回答:1

我想实现一个可以在延迟后运行给定函数的函数。

论据:

  • 回调:延迟后执行的函数
  • delay:等待的毫秒数
  • data:传递给回调的一个(也是唯一)参数

这是我的代码

let cb = function(x) {
  console.log(x);
};

const doShortly = function(callback, delay, data) {
  let result = setTimeout(callback(data), delay);
  return result;
};

console.log(doShortly(cb, 500, 'hi'));

运行代码时出现 TypeError [ERR_INVALID_CALLBACK]。我可以知道如何解决这个问题吗?短暂性脑缺血发作。

javascript callback delay
1个回答
0
投票

您可以直接使用

setTimeout
setInterval
来实现。一切 延迟参数之后的参数将按照相同的顺序传递给回调函数

let cb = function(x) {
  console.log(x);
};

const doShortly = function(callback, delay, data) {
  let result = setTimeout(callback, delay, data);
  return result;
};

console.log(doShortly(cb, 500, 'hi')); // or: setTimeout(cb, 500, 'hi')

© www.soinside.com 2019 - 2024. All rights reserved.