JS:通过使用settimout调用自身来等待函数-如何处理参数?

我希望纯JS中的函数仅在特定条件发生时才等待并执行。


function wait_then_go  (a,b,c) {


if (!go) window.setTimeout (wait_then_go (a,b,c), 500);


// go here 


}

有没有一种通用的方法可以在超时中传递参数,而不是指定a,b,c?如果我更改函数定义中的参数,我不希望代码中断。


慕斯709654
浏览 139回答 2
2回答

牧羊人nacy

arguments如果您不想指定,可以使用a,b,c。并使用包装函数并在其中调用参数。function wait_then_go  (a,b,c) {    const arg = [...arguments];    if (!go) window.setTimeout (() => wait_then_go (...args), 500);}

慕标琳琳

传递函数wait_then_go为setTimeout回调函数,并传递...arguments作为PARAMS。function wait_then_go  (a,b,c) {  if (!go) window.setTimeout (function() {    wait_then_go (...arguments)  }, 500);  // go here }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript