Turn ordinary async APIs into shiny promise based ones