Having an array of objects [obj1, obj2]
I want to use Map function to make a DB query (that uses promises) about all of them and attach the results of the query to each object.
[obj1, obj2].map(function(obj){
db.query('obj1.id').then(function(results){
obj1.rows = results
return obj1
})
})
Of course this doesn't work and the output array is [undefined, undefined]
What's the best way of solving a problem like this? I don't mind using other libraries like async
Map your array to promises and then you can use Promise.all() function:
var promises = [obj1, obj2].map(function(obj){
return db.query('obj1.id').then(function(results){
obj1.rows = results
return obj1
})
})
Promise.all(promises).then(function(results) {
console.log(results)
})
You are not returning your Promises inside the map
function.
[obj1, obj2].map(function(obj){
return db.query('obj1.id').then(function(results){
obj1.rows = results
return obj1
})
})
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With