A lightweight async flow control to convert your callbacks to promise