JavaScript – Node.js Array.map()异步吗? - 代码日志

JavaScript – Node.js Array.map()异步吗?

每次doSomething()被调用时,我可以指望nodeID的映射是否完成?

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

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

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

资料来源:

> Functional Programming
> Higher order functions in JavaScript

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

回答你的问题:是的,在应用所有元素之后调用doSomething(nodeIDs)。

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

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

http://stackoverflow.com/questions/12763613/is-node-js-array-map-asynchronous

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:JavaScript – Node.js Array.map()异步吗?