Javascript Library for Multi-step Asynchronous Logic