gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 01:45:25 25 4
gpt4 key购买 nike

函数是:

[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 block 之后的结果代码。

至于您的“预期行为”——它并不像您想象的那样有效;)

关于javascript - javascript中的map()是同步的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24629629/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com