defer [推迟]
延迟调用一个函数,直到当前调用栈已经清空。
使用 setTimeout()
,设置超时为 1 毫秒,向浏览器事件队列中添加一个新 事件,以便让渲染引擎完成其工作。使用扩展运算符 (...
) 来向函数提供任意数量的参数。
const defer = (fn, ...args) => setTimeout(fn, 1, ...args);
// Example A:
defer(console.log, "a"), console.log("b"); // logs 'b' then 'a'
// Example B:
document.querySelector("#someElement").innerHTML = "Hello";
longRunningFunction(); // Browser will not update the HTML until this has finished
defer(longRunningFunction); // Browser will update the HTML then run the function