gpt4 book ai didi

javascript - Node.js Array.map() 是异步的吗?

转载 作者:IT老高 更新时间:2023-10-28 22:03:27 31 4
gpt4 key购买 nike

我可以指望每次调用 doSomething() 时都完成 nodeIDs 映射吗?

nodeIDs = $.map(nodeIDs, function(n){
return n.match(/\d+$/);
});
doSomething(nodeIDs);

我认为 node.js 中的所有回调都是异步的?我确实读过一篇关于一般编程的文章,回调可能是同步的,但我不确定 node.js?

最佳答案

JavaScript 也是一种函数式编程语言。你这里有一个“高阶函数”,一个将函数作为参数的函数。高阶函数是同步的(但请参见下面的注释)。

来源:

map() 是高阶函数的典型例子。它接受一个函数并将其应用于数组的所有元素。这个定义听起来很“实用”。 Node 也不提供此功能。由 MDN Array.prototype.map() 记录并由 ECMAScript 5.1 指定.

回答您的问题:是的,doSomething(nodeIDs) 所有元素都已应用后被调用。


注意:高阶函数是函数式编程的一个概念。 JavaScript 是功能性的,但也深深 Root 于在浏览器或服务器上执行代码的实用性。我会说,例如 setTimeout() 不是一个高阶函数,即使它需要一个函数作为参数,因为 setTimeout() 并不是真正纯粹的函数,因为它使用时间。纯粹的功能是永恒的。例如 map() 的结果不依赖于时间。这就是这个问题的真正意义所在。如果某些事情不依赖于时间,您可以同步执行它。问题解决了。

感谢 Simon 挑战 JavaScript 中高阶函数的定义。

关于javascript - Node.js Array.map() 是异步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12763613/

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