【发布时间】:2021-09-29 01:30:05
【问题描述】:
功能是:
[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 为数组中的每个元素调用一次提供的回调函数。这是我在 Google chrome 调试器中得到的: [1,2,3].map( function (item) { console.log(item); //return 'something'; }) 1 VM63:4 2 VM63:4 3 VM63:4 [未定义,未定义,未定义] [1,2,3].map(函数(项目){console.log(项目);返回“某事”;})1 VM66:4 2 VM66:4 3 VM66: 4 [“某事”、“某事”、“某事”]
标签: javascript asynchronous map synchronous