等待毫秒后调用func。调用功能时,会向func提供任何其他参数。
我想不出一种将未定义数量的附加参数传递给回调函数的好方法。有什么建议吗?
function delay(func, wait) {
return setTimeout(func, wait);
}
// func will run after wait millisec delay
// Example
delay(hello, 100);
delay(hello, 100, 'joe', 'mary'); // 'joe' and 'mary' will be passed to hello function
答案 0 :(得分:3)
这样定义延迟时间
function delay(fn, ms) {
var args = [].slice.call(arguments, 2);
return setTimeout(function() {
func.apply(Object.create(null), args);
}, ms);
}
或者如果您是ES6 / 7风扇
function delay(fn, ms, ...args) {
return setTimeout(function() {
func.apply(Object.create(null), args);
}, ms);
}