gpt4 book ai didi

javascript - 在 Node.js 中,是否所有以回调作为输入参数的函数都是非 block 的?

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:39 25 4
gpt4 key购买 nike

我对异步函数和同步函数有点困惑,如何确定它是否是异步函数?

我的假设是所有接受回调的函数都是非阻塞和异步的,但这是我发现的一个异常(exception):

我找到了Array.prototype.forEach即使它接受回调作为参数,它也是一个 block 函数。

function test(){
[1,2,3,4,5].forEach(function(item){
for(var i =0; i<100000; i++){
console.log('test');
}
});
console.log('end');
}

test();

该函数会继续打印test直到所有回调完成,不会立即返回运行console.log('end')

真是令人困惑,我如何确定一个函数是否会立即返回?

最佳答案

您可以在这里使用常识规则,您的代码中是否需要异步?为什么我们需要延迟函数?所有数组项都可供您使用,即使它们不可用,也应该有另一个读取器,例如,它是异步的,然后用可用项填充数组,然后迭代它们。如果您需要异步,您肯定会注意到这一点。

关于javascript - 在 Node.js 中,是否所有以回调作为输入参数的函数都是非 block 的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34965865/

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