1 回答

TA貢獻1859條經驗 獲得超6個贊
XMLHttpRequest API是Javascript運行時的一部分嗎?
這取決于你所說的“JavaScript運行時”是什么意思。它們不是JavaScript標準庫的一部分,不。它們是 Web 瀏覽器中主機提供的功能。
XMLHttpRequest API 是 WebAPI 的一部分嗎?
是的,它是一個網絡API。
那么,為什么沒有其他同步 API 呢?
有。例如,幾乎所有的DOM操作都是同步的。但是,需要花費大量時間(如網絡請求)并從主UI線程(默認情況下JavaScript在瀏覽器中運行的地方)啟動的事情最好異步完成,以避免阻塞該線程并阻止UI更新。因此,默認情況下,異步(并且使用標志使其同步已被棄用),始終是異步的,并且可能需要時間的各種其他操作是異步的。XMLHttpRequest
fetch
在現代環境中,1 使用異步 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...
}
}
1 “現代環境” - 現在大多數瀏覽器都支持本機功能,如果您必須以IE11或其他過時的瀏覽器為目標(可悲的是,我們中的許多人都這樣做!),您可以使用像Babel這樣的工具將現代代碼轉換為將在這些環境中運行的舊代碼。你寫最新的東西,他們把它變成IE11可以理解的東西。async
添加回答
舉報