如何调用setTimeout?
How to call the setTimeout?
我得到下面提到的代码,并要求我在 3 秒后打印控制台 - B 和 C 在 A 之后。
我试过了
setTimeout(main(),3000);
但是我没有输出。
function sleep(){
}
function main(){
console.log('A');
// call after 3 sec
console.log('B');
// call after 3 sec
console.log('C');
}
}
setTimeout(main , 3000);
删除函数调用“( )”
setTimeout 的工作原理:
您指定 函数 (作为第一个参数)在超时后调用(第二个参数:3000)
通常您应该将函数按名称传递给 setTimeout
函数而不调用它。
setTimeout(main,3000);
setTimeout(main(), 3000)
将立即执行 main,因为您将 ()
放在它后面。只需使用名称即可。 setTimeout(main, 3000)
此外,您需要将超时设置在稍后要调用的两个特定日志语句上,而不是整个函数,或者您也可以在主函数之外记录 A,然后在之后调用主函数超时。
function main() {
console.log('A');
// call after 3 sec
setTimeout(() => {
console.log('B');
console.log('C');
}, 3000);
}
main();
您正在调用 setTimeout
的第一个参数中的函数。它应该是一个回调函数(函数定义)。把main函数的代码复制到setTimeout
函数里面就可以了
setTimeout
函数通常使用两个参数。
- 回调函数
- 时间(以毫秒为单位)
回调函数在给定时间(第二个参数)后调用。
它是这样叫的:
const callbackFunction = () =>{
console.log("Inside callback");
}
setTimeout(callbackFunction, 2000);
或者干脆
setTimeout(() =>{
console.log("Inside callback");
}, 2000);
输出(2 秒后)
Inside callback
试试这个
setTimeout(main,3000);
function main(a){
console.log('A');
setTimeout(function(){
console.log('B');
setTimeout(function(){
console.log('C');
}, 3000);
}, 3000);
}
以上输出也可以使用 async-await 重现:
function sleep(time) {
return new Promise(resolve => {
setTimeout(() => {
resolve("");
}, time);
});
}
async function main() {
await sleep(0);
console.log('A');
// call after 3 sec
await sleep(3000);
console.log('B');
// call after 3 sec
await sleep(3000);
console.log('C');
}
main();
我得到下面提到的代码,并要求我在 3 秒后打印控制台 - B 和 C 在 A 之后。
我试过了
setTimeout(main(),3000);
但是我没有输出。
function sleep(){
}
function main(){
console.log('A');
// call after 3 sec
console.log('B');
// call after 3 sec
console.log('C');
}
}
setTimeout(main , 3000);
删除函数调用“( )”
setTimeout 的工作原理: 您指定 函数 (作为第一个参数)在超时后调用(第二个参数:3000)
通常您应该将函数按名称传递给 setTimeout
函数而不调用它。
setTimeout(main,3000);
setTimeout(main(), 3000)
将立即执行 main,因为您将 ()
放在它后面。只需使用名称即可。 setTimeout(main, 3000)
此外,您需要将超时设置在稍后要调用的两个特定日志语句上,而不是整个函数,或者您也可以在主函数之外记录 A,然后在之后调用主函数超时。
function main() {
console.log('A');
// call after 3 sec
setTimeout(() => {
console.log('B');
console.log('C');
}, 3000);
}
main();
您正在调用 setTimeout
的第一个参数中的函数。它应该是一个回调函数(函数定义)。把main函数的代码复制到setTimeout
函数里面就可以了
setTimeout
函数通常使用两个参数。
- 回调函数
- 时间(以毫秒为单位)
回调函数在给定时间(第二个参数)后调用。
它是这样叫的:
const callbackFunction = () =>{
console.log("Inside callback");
}
setTimeout(callbackFunction, 2000);
或者干脆
setTimeout(() =>{
console.log("Inside callback");
}, 2000);
输出(2 秒后)
Inside callback
试试这个
setTimeout(main,3000);
function main(a){
console.log('A');
setTimeout(function(){
console.log('B');
setTimeout(function(){
console.log('C');
}, 3000);
}, 3000);
}
以上输出也可以使用 async-await 重现:
function sleep(time) {
return new Promise(resolve => {
setTimeout(() => {
resolve("");
}, time);
});
}
async function main() {
await sleep(0);
console.log('A');
// call after 3 sec
await sleep(3000);
console.log('B');
// call after 3 sec
await sleep(3000);
console.log('C');
}
main();