El método asíncrono en el método JS Array.map no se puede ejecutar de forma síncrona

1. El método asíncrono en el método JS Array.map no se puede ejecutar de forma síncrona

Pregunta: Envío solicitudes en un bucle y me devuelven dos direcciones de fotos en segundo plano. Necesito usar el mapa para operar en cada valor, lo que implica operaciones asincrónicas.
inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

Ejemplo en línea (usando promise.all): let arr1 = [1,2,3,4,5] let res = await Promise.all(arr.map(async (item) => { await new Promise(resolve=>{ setTimeout(() => { console.log(item + '内结束'); resolve(); }, 2000) }) return 10 })); console.log(res)

Finalmente se dio cuenta:
inserte la descripción de la imagen aquí
El principio de la función de mapa es:

循环数组,获取每项数组对应的内容,
调用map函数传入的方法,
获取数组的新内容,
将新内容push到新数组,最后返回。
map函数是同步执行的,所以循环每一项时,到给新数组值时,都是同步操作。

Supongo que te gusta

Origin blog.csdn.net/weixin_46319117/article/details/116272770
Recomendado
Clasificación