Javascript async Wait是否仅用于承诺?

Javascript async Wait是否仅用于承诺?,javascript,promise,async-await,Javascript,Promise,Async Await,我正在使用javascript 我的问题来自于这个场景:我有一个很大的数组正在映射 let myNewArray = myLargeArray.map(someFuntion) console.log(myNewArray) 是否可能映射时间太长,并且可能会记录undefined?那么,我应该使用async await还是只为承诺而保留 映射是否可能需要太长时间 “太长”是主观的。但所花的时间不会对最终的价值产生任何影响 未定义的可能会被记录 map总是返回一个数组,所以不是 但数组可能包含未

我正在使用javascript

我的问题来自于这个场景:我有一个很大的数组正在映射

let myNewArray = myLargeArray.map(someFuntion)
console.log(myNewArray)
是否可能映射时间太长,并且可能会记录
undefined
?那么,我应该使用async await还是只为承诺而保留

映射是否可能需要太长时间

“太长”是主观的。但所花的时间不会对最终的价值产生任何影响

未定义的可能会被记录

map
总是返回一个数组,所以不是

但数组可能包含未定义的值

那么,我应该使用async await还是只为承诺而保留

你只能有效地等待承诺

map
将返回一个数组,因此您不能等待它

如果
someFunction
返回一个承诺,那么
map
将返回一个承诺数组,可以用
promise来包装。所有
都返回一个承诺,如果希望记录一个解析值数组而不是承诺数组,则可以等待该承诺。

map是同步的。
它接受回调函数
(someFunction)
,并始终创建一个新数组。
回调函数
(someFunction)
不是事件驱动的。
它按顺序应用于数组中的每个元素一次。
您将始终收到一个数组,而不是未定义的数组。 但是返回数组中的值将取决于您提供给映射的回调函数。
如果
someFunction
不返回任何内容,您将得到未定义的数组。

如果返回promise,则返回可解析的promise数组<代码>承诺。所有

是的,async Wait是处理承诺的语法糖,您的代码是同步的,并且不会记录未定义的
。它将被同步处理,需要花费时间来结束。它将按照写入的顺序执行。执行不是随机的,也不依赖于时间。也许你会看到。