How Javascript Handle Asynchronous Communication