看到一段代码,记录一个小知识点:
function timeout(ms) {
return new Promise((resolve, reject) => {
setTimeout(resolve, ms, 'done');
});
}
timeout(100).then((value) => {
console.log(value);
});
setTimeout传参说明: setTimeout(functionRef, delay, param1, param2, /* … ,*/ paramN)
functionRef
当定时器到期后,将要执行的 function。
delay 可选
定时器在执行指定的函数或代码之前应该等待的时间,单位是毫秒。如果省略该参数,则使用值 0,意味着“立即”执行,或者更准确地说,在下一个事件循环执行。
注意,无论是哪种情况,实际延迟可能会比预期长一些
还要注意的是,如果值不是数字,隐含的类型强制转换会静默地对该值进行转换,使其成为一个数字——这可能导致意想不到的、令人惊讶的结果;见非数字延迟值被静默地强制转化为数字以了解一个示例。
param1, …, paramN 可选
附加参数,一旦定时器到期,它们会作为参数传递给 functionRef 指定的函数。
所以上面可以最终打印: done