I am having problems with a function returning an undefined array.
Here is the code:
classMethods.getQueries = function(models, dbId, dateStart, dateEnd) {
return new Promise(function(resolve, reject) {
.then(extractQueries, reject)
.then(sortQueries, reject)
.then(onlyTen, reject)
.then(addText, reject)
.then(function(queries) {
console.log('getQueries finished', queries) ;
resolve(queries);
}, reject);
});
};
Everything is fine up to the addText function:
function addText(queries) {
return Promise.all(queries.map(function(query) {
models.queries.findById(query.queryId, { raw: true, attributes: ['query'] })
.then(function(queryFetched) {
query.text = queryFetched.query;
console.log(query);
return Promise.resolve(query);
}, function(error) {
return Promise.reject(error);
});
}));
};
This gives me this opportunity:
getQueries finished [undedfined 10x]
10x
[query database]
{queryId: ***, text: ********}
I have no idea why the promise comes back until the loop is finished.
Thanks for the help.
source
share