UNPKG

asyncforge

Version:

`asyncforge` allows you to remove singletons from your codebase with the use of [`AsyncLocalStorage`](https://nodejs.org/api/async_context.html#class-asynclocalstorage).

46 lines (37 loc) 860 B
import { create, memo } from './asyncforge.js' const a = memo() const b = memo() const store = create() store.run(() => { a.set(42) b.set(123) // simulate an event loop turn setImmediate(() => { console.log('-- first event loop turn --') console.log('a', a()) console.log('b', b()) }) }) create(() => { a.set(43) b.set(321) // simulate an event loop turn setImmediate(() => { console.log('-- second event loop turn --') console.log('a', a()) console.log('b', b()) store.run(() => { setImmediate(() => { console.log('-- third event loop turn --') console.log('a', a()) console.log('b', b()) }) }) setImmediate(() => { store.enterWith() console.log('-- fourth event loop turn --') console.log('a', a()) console.log('b', b()) }) }) })