Javascript async Wait是否仅用于承诺?
我正在使用javascript 我的问题来自于这个场景:我有一个很大的数组正在映射Javascript async Wait是否仅用于承诺?,javascript,promise,async-await,Javascript,Promise,Async Await,我正在使用javascript 我的问题来自于这个场景:我有一个很大的数组正在映射 let myNewArray = myLargeArray.map(someFuntion) console.log(myNewArray) 是否可能映射时间太长,并且可能会记录undefined?那么,我应该使用async await还是只为承诺而保留 映射是否可能需要太长时间 “太长”是主观的。但所花的时间不会对最终的价值产生任何影响 未定义的可能会被记录 map总是返回一个数组,所以不是 但数组可能包含未
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是处理承诺的语法糖,您的代码是同步的,并且不会记录未定义的
。它将被同步处理,需要花费时间来结束。它将按照写入的顺序执行。执行不是随机的,也不依赖于时间。也许你会看到。