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.

Reply via email to