今天在看Promise的时候发现定时器还有第三个参数,之前一直都没注意,也没有用过,很惊喜😄。

1
2
3
4
5
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, 'done');
});
}

MDN上的定义

var timeoutID = scope.setTimeout(function[, delay, param1, param2, …]);

param1, …, paramN 可选
附加参数,一旦定时器到期,它们会作为参数传递给function 或 执行字符串(setTimeout参数中的code)

当第三个参数是函数会很有意思

1
2
3
4
5
6
var doc = document.getElementById('div');
setTimeout(function(){
doc.style.color='red';
},10000,setTimeout(function(){
doc.style.color='black';
},5000));

上面的结果是,div元素内的字体样式5秒后变黑,10秒后再变红。