Cleaner setTimeout Callbacks
JS Bits Bill
Posted on July 19, 2020
Sometimes I'll write some code that needs to be wrapped in a setTimeout:
setTimeout(myFunc, 1000);
If my function took any arguments, it would bum me out by having to add additional lines to call it inside an separate callback:
setTimeout(() => {
myFunc(arg1, arg2);
}, 1000);
To keep things on one line, sometimes I'd bind the arguments to the function this way:
setTimeout(myFunc.bind(null, arg1, arg2), 1000);
But here's the money: setTimeout
takes additional arguments that get passed to the supplied callback:
setTimeout(myFunc, 1000, 'π', 'π'); // Logs "π + π = π"
function myFunc(protein, carb) {
console.log(`${protein} + ${carb} = π`);
}
So now you can keep your fancy one-liners without binding! π
Links
MDN Article on setTimeoutCheck out more #JSBits at my blog, jsbits-yo.com. Or follow me on Twitter!
π πͺ π
π©
JS Bits Bill
Posted on July 19, 2020
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.