使用第三个参数解决,写法会很简单。其实第三个参数就是给第一个函数传参数。
示例:
1、
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, 'done');
});
}
timeout(100).then((value) => {
console.log(value);
});
//done
2、
for (var i=0;i<4;i++) {
setTimeout((i) => {
console.log(i)
}, 1000,i)
}
//0,1,2,3
如果上面示例没有第三个参数,定时器中的 i 未定义