Ryan, I was sooooo close man :) Thanks, that actually worked for me.
On Friday, July 17, 2015 at 5:02:00 PM UTC-4, Erick Neverson wrote: > > > > <http://stackoverflow.com/questions/31481546/q-promise-and-map-doesnt-change-after-iteration#> > > > I'm using Q Promises to retrieve data from my redis repository. The > problem I'm having, is that through each iteration, the array object > (localEncounter) I'm using to store data returned from the chained > functions is never updated at each iteration. Previously, I tried to solve > this with a foreach loop and spread but the results were the same. > > How should I correct this so that localEncounter is updated at each > iteration, and ultimately localEncounters contains correct data when > returned? Thank you. > > > var localEncounters = []; > var localEncounter = {}; > > Promise.all(ids.map(function(id) { > return localEncounter, getEncounter(id, client) > .then(function (encounter) { > encounterObject = encounter; > > //set the fields for the return object > localEncounter['encounterid'] = encounterObject[f_id]; > localEncounter['screeningid'] = > encounterObject[f_screening_id]; > localEncounter['assessmentid'] = > encounterObject[f_clinical_assessment_id]; > localEncounter['psychevalid'] = > encounterObject[f_psych_eval_id]; > > //get screening > return getScreening(encounterObject[f_screening_id], > client); > }) > .then(function (screening) { > //set the fields for the return object > localEncounter['screeningbegintime'] = > screening[f_begin_time]; > //get assessment > return getAssessment(localEncounter['assessmentid'], > client); > }) > .then(function (assessment) { > //set the fields for the return object > localEncounter['assessmentbegintime'] = > assessment[f_begin_time]; > //get psycheval > //localEncounters.push(assessment); > return getPsychEval(localEncounter['psychevalid'], > client); > }) > .then(function (psychEval) { > //set the fields for the return object > localEncounter['psychevalbegintime'] = > psychEval[f_begin_time]; > > localEncounters.push(localEncounter); > > } > , function (reason) { > console.log(reason); // display reason why the call > failed; > reject(reason, 'Something went wrong creating the > encounter!'); > }) > > })).then(function(results) { > // results is an array of names > console.log('done '); > > resolve(localEncounters); > }) > > -- Job board: http://jobs.nodejs.org/ New group rules: https://gist.github.com/othiym23/9886289#file-moderation-policy-md Old group rules: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/nodejs/8916bced-17ac-4ef8-806e-4a54fb0a7752%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
