Advertisement
Guest User

Untitled

a guest
Jul 25th, 2016
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.02 KB | None | 0 0
  1. const async = require('async');
  2. const cls = require('continuation-local-storage');
  3. const ns = cls.createNamespace('cls-spike');
  4.  
  5. // function 1 which pulls context from cls
  6. const fn1 = (cb) => {
  7. const ns = cls.getNamespace('cls-spike');
  8. const name = ns.get('name');
  9. console.log('name: ', name);
  10. cb(null, name);
  11. };
  12.  
  13. // function 2 which pulls context from cls
  14. const fn2 = (name,cb) => {
  15. const ns = cls.getNamespace('cls-spike');
  16. const lastName = ns.get('lastName');
  17. console.log('lastname: ', lastName);
  18. cb(null, `${name} ${lastName}`);
  19. };
  20.  
  21. // Trigger async waterfall callbacks
  22. const asyncFn = () => {
  23. async.waterfall([
  24. fn1,
  25. fn2
  26. ], (err, results) => {
  27. console.log( results);
  28. });
  29. }
  30.  
  31. // Run flow in context
  32. ns.run(() => {
  33. ns.set('name', 'foo');
  34. ns.set('lastName', 'bar');
  35. asyncFn();
  36. });
  37.  
  38. // Expected output (^v2.0.0):
  39. // name: foo
  40. // lastname: bar
  41. // foo bar
  42.  
  43.  
  44. // Actual output (^v1.0.0):
  45. // name: foo
  46. // lastname: undefined
  47. // foo undefined
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement