javascript中的map()是同步的
Is map() in javascript 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)
{
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()方法使用对该数组中的每个元素调用提供的函数的结果创建一个新数组。"
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map为每个项目调用回调,执行逻辑并将返回值设置为新数组中的一个项目。
相关文章:
- javascript函数中的异步与同步.(Node.js)
- 如何使用javascript中的生成器模拟同步调用
- angularjs文本区域-如何使其与angularjs下拉列表中的选定值保持同步
- 将同步函数包装到承诺中的最佳方法是什么?
- Web 工作线程中的同步 XHR 请求是否仍会锁定浏览器
- 在chrome扩展程序中同步IndexedDB的解决方案
- NodeJS中的异步与同步
- 什么是browser.ignore量角器中的同步
- Promise处理程序中的同步代码
- 如何从node.js中的HTTP请求中获得同步结果
- 如何在nodejs中的async.each中进行同步http调用
- 同步html中的文本区域
- 如何在node.js和MongoDb中混合javascript中的同步和异步代码
- 淘汰绑定中的同步动画
- javascript中同步函数执行中的问题
- AngularJS.ng类与$scope中的变量不同步
- 同步读取package.json中的自定义字段
- 如何确保angularjs app.js中的同步加载
- 当用户离开图表区域时,删除同步图表中的工具提示
- while循环中的Javascript同步超时