gpt4 book ai didi

Javascript 这些调用在 Node.js 中是否相同?

转载 作者:数据小太阳 更新时间:2023-10-29 05:23:09 24 4
gpt4 key购买 nike

我想知道这两个代码块在 Node.js 中是否相同?

// Style 1
setTimeout(function () {
console.log('hello');
}, 0);


// Style 2
console.log('hello');

由于上面我将 0 传递给超时,因此应该没有等待时间。这与不使用 setTimeout 直接调用 console.log('hello'); 是否相同?

最佳答案

不同的是,第一个将函数加入到事件队列中,使其在当前执行路径走完后一有机会就执行。第二个将立即执行。

例如:

console.log('first');

setTimeout(function(){
console.log('third');
}, 0);

console.log('second');

这些打印的顺序定义明确,您甚至可以在打印“second”之前做一些缓慢(但同步)的事情。保证 console.log('second'); 仍然会在回调到 setTimeout 之前执行。做:

console.log('first');

setTimeout(function () {
console.log('third'); // Prints after 8 seconds
}, 0);

// Spinlock for 3 seconds
(function(start){ while(new Date - start < 3000); })(new Date);

console.log('second'); // Prints after 3 seconds, but still before 'third'

// Spinlock for 5 seconds
(function(start){ while(new Date - start < 5000); })(new Date);

关于Javascript 这些调用在 Node.js 中是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18779946/

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