一、
最近在看阮一峰es6的promise,惊奇的发现一个例子:原来 setTimeout居然还有第三个参数,调用方法的时候可以作为传参对象
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, 'done');
});
}
timeout(100).then((value) => {
console.log(value);
});
二、定义
’Additional parameters which are passed through to the function specified by func once the timer expires.’
定时器启动时候,第三个以后的参数是作为第一个func()的参数传进去。
三、语法糖
我认为第三个参数可能是setTimeout的语法糖,其实按照第二种写法也是可以的,可能第一种写法会比较吊一点,毕竟很少人会知道setTimeout有第三个参数。
setTimeout(resolve, ms, 'done');
setTimeout(resolve('done'), ms);