javascript中的map()是同步的吗?

javascript中的map()是同步的吗?,javascript,asynchronous,map,synchronous,Javascript,Asynchronous,Map,Synchronous,功能是: [1,2,3].map( function (item) { console.log(item); //return 'something'; }); 我的预期行为仅得到1作为输出,除非我取消注释 //return 'something' 但我真的明白了 1 2 3 我做错了什么 更新: 我正在用nodejs测试这一点 我真的不明白 var async = require("async"); [1,2,3].map( function (item) { co

功能是:

[1,2,3].map( function (item)
{
  console.log(item);
  //return 'something';
});
我的预期行为仅得到1作为输出,除非我取消注释

//return 'something'
但我真的明白了

1
2
3
我做错了什么

更新:

我正在用nodejs测试这一点

我真的不明白

var async = require("async");

[1,2,3].map( function (item)
{
      console.log(item);
      //return 'something';
}); 
async.map([1,2,3], function (item,callback)
    {
        console.log(item);
        //callback(null,true)
    }, function (err,result)
        {
            console.log(result);
        }
);
两者返回相同的值

1
2
3
我真的很想等到我得到一个返回或回调,直到下一个项目被执行

已解决

async.mapSeries([1,2,3], function (item,callback)
    {
        console.log(item);
        //callback(null,true)
    }, function (err,result)
        {
            console.log(result);
        }
);
是执行此操作的方法。

“map()方法创建一个新数组,其结果是在此数组中的每个元素上调用提供的函数。”


为每个项调用回调,执行逻辑,并将返回值设置为新数组中的项。

是,映射是同步的。
这是一个高阶函数,它接受一个新函数并将其应用于给定数组

有些人认为,因为他们将函数作为参数提供给
map
,所以它“应该”像事件回调函数一样工作,但事实并非如此。
map
函数仅将函数参数应用于数组,并且仅在它完成后,才会在map块之后继续执行生成的代码


至于你的“预期行为”——它只是不像你想象的那样工作;)

为什么这是你的“预期行为”?你在尝试哪个浏览器?对于google chrome,我在这两种情况下都得到了预期的结果。注意:map为数组中的每个元素调用一次提供的回调函数。这是我在Google chrome调试器中得到的:[1,2,3].map(函数(项){console.log(项);//返回'something';})1 VM63:4 2 VM63:4 3 VM63:4[undefined,undefined,undefined,undefined][1,2,3].map(函数(项){console.log(项);返回'something';})1 VM66:4 2 VM66:4 3 VM66:4[“something”,“something”,“something”,“something”,“something”]换句话说,
函数映射(f,xs){var out=[];for(var i=0;i[2,3,4]
是否意味着map()并行执行这些函数?Array.map同步执行回调。