Parse state across async callbacks.
npm install async-state
var asyncState = require('async-state')()
asyncState.foo = 'foo'
setTimeout(function () {
console.log(asyncState.foo) // => foo
}, 2000)
asyncState.foo = 'bar'
This also works between files. For a more complex example, see the example folder.
Only object references are copied across async bounderies. The content of the object is shared! I.e. the following will get you into trouble:
var asyncState = require('async-state')()
asyncState.obj = { foo: 'foo' }
setTimeout(function () {
console.log(asyncState.obj.foo) // => bar
}, 2000)
// THIS IS BAD!
asyncState.obj.foo = 'bar'
To solve that issue, implement your own cloning logic:
var asyncState = require('async-state')()
asyncState.obj = { foo: 'foo' }
setTimeout(function () {
console.log(asyncState.obj.foo) // => foo
}, 2000)
// THIS IS GOOD :)
asyncState.obj = { foo: 'bar' }
Thanks to Andreas Madsen for pointing me towards the async_wrap
API.
MIT