When adding asynchronous function, call resolver.resolve when data is ready.
resolver.resolve
Use q.add(fn, name) to add fn to the queue, and restore its return value in q.data[name]
q.add(fn, name)
fn
q.data[name]