node.js - Mongoose : Queries through an array, return a promise of an array -
i trying iterate through opts
, make same query on each element, want in return promise of array containing results of queries. how can ?
i tried moment first item
//opts array of objects function getrecapofcampaign (campaignid, opts) { var p_votes = models.bsvote .find({ created: { $gte: opts[0].fromdate, $lt: opts[0].todate } }) .where('campaign').equals(campaignid) .count() .exec(); return p_votes; }
there bunch of promise libs out there use or use native js promise
implementation on newer releases of node. in particular promise.all
method.
promise.all([array_or_promises]).then(values => { console.log(values); // [array_of_results_from_promises] });
using promise.all
along map
should give want:
//opts array of objects function getrecapofcampaign(campaignid, opts) { return promise.all(opts.map(function(opt) { return models.bsvote.find({ created: { $gte: opt.fromdate, $lt: opt.todate } }) .where('campaign').equals(campaignid) .count() .exec(); })); }
note: promise.all
there no limit on number of promises concurrently running. if concern can either roll own or use 1 of many promise libs have methods this.
Comments
Post a Comment