Hello ,I am not a user of continuation-local-storage , but there is a more graceful way ,see here https://github.com/yyrdl/zco#3-thisctx
On Wednesday, June 28, 2017 at 2:55:27 AM UTC+8, [email protected] wrote: > > I'm trying to use continuation-local-storage module to have "currentUser" > across my entire application. > > When calling async waterfall the context gets lost. > > app.get('/testing/cls', > function(req, res, next) { > ns.run(function() { > ns.set('currentUser', req.user._id) > return next() > }) > }, > function(req, res) { > function fn1(cb) { > console.log('async fn1', ns.get('currentUser')) > return cb() > } > > function fn2(cb) { > console.log('async fn2', ns.get('currentUser')) > cb() > } > > function fn3(cb) { > console.log('async fn3', ns.get('currentUser')) > cb() > } > > async.waterfall([ > fn1, > fn2, > fn3 > ], function() { > console.log('async waterfall done', ns.get('currentUser')) > res.send({user: ns.get('currentUser')}) > }) > } > ) > > The console prints are > > 27/6/2017-11:49:39 - info: (13405) - async fn1 58a1adaslkdjh32e > 27/6/2017-11:49:39 - info: (13405) - async fn2 > 27/6/2017-11:49:39 - info: (13405) - async fn3 > 27/6/2017-11:49:39 - info: (13405) - async waterfall done > > Fixing this problem is by wrapping ns.bind(fn2) but this means that need > to change entire application code for wherever I have async. > > What am I doing wrong? > > Any help is appreciated :) > -- 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/256c0b8f-72ae-40ea-84c3-2625f9fb937a%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
