Write super-clean async code with promises.