I'm new to javascript and am having a hard time chaining multiple promise.all() statements. Below is a highly simplified version of my code.
function a(x) {
return new Promise(function(resolve) {
setTimeout(resolve(x*2), 500)
});
}
function b(x) {
return new Promise(function(resolve) {
setTimeout(resolve(x*3), 400)
});
}
function c(x) {
const promises = [a(x),b(x)];
Promise.all(promises).then(function(y){
z = y[0] + y[1]
return new Promise(function(resolve, reject){
resolve(z);
});
});
}
function d(x) {
const promises = [];
for (let input of x){
promises.push(c(input))
}
Promise.all(promises).then(function(z){
console.log(z);
});
}
const data = [1,2,3,4,5];
d(data);
I'd like to see this printed:
[5, 10, 15, 20, 25]
But instead I'm seeing this:
[undefined, undefined, undefined, undefined, undefined]
What am I missing?