A radically simpler way to deal with asynchronous functions in javascript