1 回答

TA贡献1859条经验 获得超6个赞
XMLHttpRequest API是Javascript运行时的一部分吗?
这取决于你所说的“JavaScript运行时”是什么意思。它们不是JavaScript标准库的一部分,不。它们是 Web 浏览器中主机提供的功能。
XMLHttpRequest API 是 WebAPI 的一部分吗?
是的,它是一个网络API。
那么,为什么没有其他同步 API 呢?
有。例如,几乎所有的DOM操作都是同步的。但是,需要花费大量时间(如网络请求)并从主UI线程(默认情况下JavaScript在浏览器中运行的地方)启动的事情最好异步完成,以避免阻塞该线程并阻止UI更新。因此,默认情况下,异步(并且使用标志使其同步已被弃用),始终是异步的,并且可能需要时间的各种其他操作是异步的。XMLHttpRequest
fetch
在现代环境中,¹ 使用异步 API 与使用同步 API 一样简单,这要归功于以下功能:async
async function showMoreData() {
const response = await fetch("/more/data/please");
if (!response.ok) {
throw new Error("HTTP error " + response.status);
}
const data = await response.json();
for (const entry of data) {
// ...do something...
}
}
¹ “现代环境” - 现在大多数浏览器都支持本机功能,如果您必须以IE11或其他过时的浏览器为目标(可悲的是,我们中的许多人都这样做!),您可以使用像Babel这样的工具将现代代码转换为将在这些环境中运行的旧代码。你写最新的东西,他们把它变成IE11可以理解的东西。async
添加回答
举报