【发布时间】:2020-05-26 22:53:05
【问题描述】:
我的想法是所有WebAPIs 都是async,因为事情是在JavaScript 运行时之外处理的。但我知道我可以同步发送XMLHttpRequest 请求。所以我对此有几个问题。
XMLHttpRequest API 是 Javascript 运行时的一部分吗?
如果是这样,如何异步发送请求?
为什么不自己实现其他有用的 Javascript API 而不将它们暴露为 WebAPIs?
XMLHttpRequest API 是 WebAPIs 的一部分吗?
那么,为什么没有其他同步 API 呢?为什么不用setTimeout 同步API?
【问题讨论】:
-
XMLHttpRequest是 浏览器 的一部分,而不是 JavaScript。进行同步调用的能力伴随着冻结用户界面直到请求完成的惩罚。这基本上是一个直到最近才修复的设计错误。 -
“因为事情是在 JavaScript 运行时之外处理的。” - 不,这不是事情异步的原因。也有许多同步 Web api,例如整个 DOM 操作。
标签: javascript asynchronous xmlhttprequest