function timeout(ms) { return new Promise((resolve, reject) => { setTimeout(resolve, ms, 'done'); }); } timeout(100).then((value) => { console.log(value); });
请问为什么会返回'done',setTimeout不是只有两个参数?为什么timeout执行后 resolve会拿到'done'
'done'
https://developer.mozilla.org...
向延迟函数传递额外参数的功能
setTimeout 第一个参数是回掉函数,第二个是延迟回掉的时间,第三个参数之后就是向回掉函数的参数。你的这种写法就相当于
setTimeout(function () { resolve('done') }, ms)
https://developer.mozilla.org...
setTimeout 第一个参数是回掉函数,第二个是延迟回掉的时间,第三个参数之后就是向回掉函数的参数。你的这种写法就相当于