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.

Reply via email to