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

我能指望每次调用doSomething()时完成的nodeID映射吗?

nodeIDs = $.map(nodeIDs, function(n){

return n.match(/\d+$/);

});

doSomething(nodeIDs);

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

回答:

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

资料来源:

  • 功能编程
  • JavaScript中的高阶函数

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

Array.prototype.map()记录,并由ECMAScript

5.1指定。

要回答您的问题:是,在应用所有元素 *


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

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

以上是 Node.js Array.map()是异步的吗? 的全部内容, 来源链接: utcz.com/qa/427746.html

回到顶部