我正在使用 javascript。我的问题来自这种情况:我正在映射一个大数组,let myNewArray = myLargeArray.map(someFuntion)console.log(myNewArray)映射是否可能需要太长时间并且undefined可能会被记录?那么我应该使用 async-await 还是只为 promise 保留?
2 回答
函数式编程
TA贡献1807条经验 获得超9个赞
映射是否可能需要太长时间
“太长”是主观的。不过,花费的时间不会对您最终获得的价值产生任何影响。
undefined 可能会被记录?
map
总是返回一个数组,所以不。
不过,该数组可能包含未定义的值。
那么我应该使用 async-await 还是只为 promise 保留?
您只能有用地等待承诺。
map
将返回一个数组,所以你不能有用地等待它。
如果someFunction
返回一个promise,那么map
它将返回一个promise数组,你可以用Promise.all
它包装一个promise,如果你想记录一个已解析值的数组而不是一个promise 数组,你可以等待它。
萧十郎
TA贡献1815条经验 获得超13个赞
地图是同步的。
它接受回调函数(someFuntion)
并始终创建一个新数组。
回调函数(someFuntion)
不是事件驱动的。
它按顺序应用于数组中的每个元素。
您将始终收到一个数组而不是未定义的。但是返回数组中的值将取决于您提供给映射的回调函数。
如果不someFuntion
返回任何内容,您将获得未定义的数组。
如果返回承诺,则可以解决的承诺数组。Promise.all
.
添加回答
举报
0/150
提交
取消