Another look at callback hell, Practical solutions to asynchronous control flow