gpt4 book ai didi

javascript - 设置超时不会立即返回

转载 作者:行者123 更新时间:2023-12-03 03:55:40 25 4
gpt4 key购买 nike

我正在练习回调函数,这个问题我似乎无法弄清楚。

function foo () {    
var data = 10;
bar(function (players) {
data = players;
});
return data;
}

function bar (callback) {
setTimeout(callback, 0);
}

var result = foo();

我预计结果是未定义的,因为data =players并且没有任何内容作为玩家传入。既然setTimeout函数使用0作为延迟,那么它不应该先运行,然后返回数据吗?我查看了 MDN 页面,似乎有关于将嵌套超时限制为 >=4ms 的信息。这也适用于本案吗?

最佳答案

Since the setTimeout function uses 0 as the delay, shouldn't it run first, and then return data?

不,即使延迟 0,传递给 setTimeout 的回调也计划在 next tick of the event loop 中运行。 .

换句话说,回调保证在当前执行运行完成之后执行。

关于javascript - 设置超时不会立即返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44963480/

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