gpt4 book ai didi

JavaScript 回调函数 ..ish 问题

转载 作者:行者123 更新时间:2023-11-30 14:25:51 26 4
gpt4 key购买 nike

所以我正在做一些关于回调函数的练习,我想自己尝试一下,并将它与 setTimeout 方法一起使用,令我惊讶的是,它没有按预期工作。请问我做错了什么在这里。

function first(number, callback) {
setTimeout(function() {
console.log(number);
}, 5);
callback();
}

function second() {
console.log(2);
}

first(1, second);

最佳答案

您正在同时执行 setTimeoutcallback。因为 JavaScript 是单线程的,所以它不会等待 setTimeout 完成后再执行下一条语句。

这就是为什么 2 立即打印,然后 1 延迟 5 毫秒后打印。

如果要先打印1,那么需要在setTimeout的回调中调用callback函数。这确保 console.log(number) 在调用 callback(打印 2)之前执行。

function first(number, callback) {
setTimeout(function() {
console.log(number);
callback();
}, 5);
}

function second() {
console.log(2);
}

first(1, second);

关于JavaScript 回调函数 ..ish 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51934151/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com