通常,给定程序的代码直接运行,一次只发生一件事。如果一个函数依赖于另一个函数的结果,则它必须等待另一个函数完成并返回,直到这种情况发生为止,从用户的角度来看,整个程序实际上都已停止。
例如,Mac用户有时会遇到旋转的彩虹色光标(通常称为“沙滩球”)。光标就是操作系统说的:“您正在使用的当前程序不得不停止并等待完成。这花了很长时间,我担心您会想知道发生了什么。”
这是一个令人沮丧的经历,并且不能很好地利用计算机的处理能力,尤其是在计算机具有多个可用处理器核心的时代。当您可以让其他任务在另一个处理器内核上运行并让您知道何时完成时,坐在那里等待某事毫无意义。这使您可以同时完成其他工作,这是异步编程的基础。由您使用的编程环境(对于Web开发,是Web浏览器)取决于您提供的API,这些API允许您异步运行此类任务。