Tengo este código y quiero guardar el resultado de Promise.all en dos variables. El problema es que me queda indefinido cuando (this.data = data)
const {data,recents} : any = await Promise.all([ this.$store.dispatch('algo', input), this.$store.dispatch('algo', input) ]) this.data = data this.recents = recentsPromise.all devuelve una promesa que cumplirá con una matriz de los resultados de las promesas individuales. No puede desestructurar propiedades de objetos con nombres arbitrarios desde allí; ¡utilice la desestructuración de matrices en su lugar!
const [data, recents] = await Promise.all([ // ^ ^ this.$store.dispatch('algo', input), this.$store.dispatch('algo', input) ]) this.data = data this.recents = recentso más corto sin las variables temporales:
;[this.data, this.recents] = await Promise.all([ this.$store.dispatch('algo', input), this.$store.dispatch('algo', input) ])Asumiría que Promise.all resuelve una matriz. Entonces, usar la desestructuración de objetos no funcionará.
Pruebe la desestructuración de la matriz en su lugar:
(async() => { const [ data, recents ] = await Promise.all([ Promise.resolve('data'), Promise.resolve('recents') ]); console.log( data, recents ); })();