setTimeout和setInterval方法皆有可选的第三参数,一旦定时器到期,第三参数会作为参数传递给function。
var timeoutID = scope.setTimeout(function[, delay, arg1, arg2, ...]);
arg1, ..., argN(可选):附加参数,一旦定时器到期,它们会作为参数传递给function。
简单的例子:
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, 'done');
});
}
timeout(100).then((value) => {
console.log(value);
});
需要注意的是,IE9及更早的IE浏览器不支持向回调函数传递额外参数。如果你想要在IE中达到同样的功能,你必须使用一种兼容代码polyfill。