我想知道 JavaScript 回调是如何工作的。我特别不明白异步 XmlHttpRequest
是如何工作的。 JS如何确定服务器返回了某个值(在一个线程中),以及何时调用回调方法?它是建立在计时器上的吗?
最佳答案
回答了一个非常相似的问题here更详细。
基本的答案是,底层网络发生在操作系统级别,当传入的网络数据包到达时,可以有线程或某种类型的通知。当结果完成时,一个事件被添加到 javascript 事件队列中。当该事件到达事件队列的顶部并且 javascript 准备好对其执行操作时,将触发适当的 javascript ajax 事件,从而启动导致调用回调的 javascript 链。
超时可能涉及一些计时器,但计时器不用于知道 ajax 响应何时到达。这是基于浏览器使用的操作系统级网络支持。
关于javascript - JS如何判断何时调用回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8839183/