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!
ย