Awaitable is a Promise API for simplifying event oriented programming