对于 setTimeout(resolve('World'), ms); 与 setTimeout(resolve, ms, 'World'); 有何不同之处表示不明白。function timeout(ms = 100) { /*1. 为何这种写法,立即返回数据而不是等到过了 ms 后才返回*/ // return new Promise((resolve, reject) => { // setTimeout(resolve('World'), ms); // }); /*2. 为何这种写法,等到过了 ms 后才返回*/ return new Promise((resolve, reject) => { setTimeout(resolve, ms, 'World'); });}timeout(1000) .then(value => { console.log(`Hello, ${value}`); }) .catch(err => { console.error(err); });
1 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
就是func()和func的区别,setTimeout的第一个参数是func,如果用func()相当于其返回值为第一个参数。
举个例子:
function test(){
console.log('this is test!');
return function () {
console.log('this is return!');
}
}
setTimeout(test(), 1000);
大致相当于:
console.log('this is test!');
setTimeout(function () {
console.log('this is return!');
}, 1000);
添加回答
举报
0/150
提交
取消