A cleaner way to write async codes.