日常-settimeout的第三个参数
1.代码复现
在查资料的时候看到个这句代码
const promise3 = new Promise((resolve, reject) => {
setTimeout(reject, 1000, '失败')
});
很是好奇,这是什么写法。
2.代码解析
setTimeout
的第三个参数可以用来传递额外的参数给你指定的回调函数。这个参数会作为参数传递给回调函数,而不需要在回调函数内部显式调用。
2.1 示例
以下是一个使用 setTimeout
的第三个参数的示例:
setTimeout(function(message) {
console.log(message);
}, 1000, '失败11'); // 1秒后输出 "失败11"
2.2 解释
- 回调函数: 第一个参数是一个函数,当延迟时间到达时执行。
- 延迟时间: 第二个参数是延迟的时间(以毫秒为单位)。
- 第三个参数: 第三个参数
'失败11'
会被作为参数传递给回调函数。
2.3 使用箭头函数
你也可以使用箭头函数:
setTimeout((message) => {
console.log(message);
}, 1000, '失败11'); // 1秒后输出 "失败11"
2.4 使用命名函数
如果你使用命名函数,也可以像这样:
function con(message) {
console.log(message);
}
setTimeout(con, 1000, '失败11'); // 1秒后输出 "失败11"
2.5 总结
setTimeout
的第三个参数允许你在定时器到期时传递参数给回调函数,简化了参数传递的过程。- 你可以使用匿名函数、箭头函数或命名函数来接收这些参数。
原来那里的代码可以拆解为
new Promise((resolve, reject) => {
function con(a) {
console.log(a)
}
setTimeout(
con
, 1000, '失败110')
});
类似的,con看成事已经定义了的方法reject