Coding like multithreading, escaping from the callback hell in asynchronous programming