Save the Promise.all into two variables
I have this code and I want save the result of Promise.all into two variables. The problem is that I gets undefined when (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 = recents
Solution 1:
Promise.all
returns a promise that will fulfill with an array of the individual promises' results. You cannot destructure arbitarily named object properties from there - use array destructuring instead!
const [data, recents] = await Promise.all([
// ^ ^
this.$store.dispatch('algo', input),
this.$store.dispatch('algo', input)
])
this.data = data
this.recents = recents
or shorter without the temporary variables:
;[this.data, this.recents] = await Promise.all([
this.$store.dispatch('algo', input),
this.$store.dispatch('algo', input)
])
Solution 2:
I would assume that Promise.all resolves an array. So using object destructuring won't work.
Try array destructuring instead:
(async() => {
const [
data,
recents
] = await Promise.all([
Promise.resolve('data'),
Promise.resolve('recents')
]);
console.log(
data,
recents
);
})();