async/await 是 JavaScript 中用于處理異步操作的關(guān)鍵字組合。
async 關(guān)鍵字用于聲明一個函數(shù)是異步函數(shù),該函數(shù)內(nèi)部可以包含 await 表達式。
await 表達式用于暫停異步函數(shù)的執(zhí)行,等待 Promise 對象的解析結(jié)果,并將該結(jié)果返回。
在使用 async/await 時,可以將異步的操作看作是同步的操作,使得代碼更加易讀和簡潔。
例如:
async function getData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
getData();
在上述代碼中,通過 async 關(guān)鍵字聲明了一個異步函數(shù) getData(),在函數(shù)體內(nèi)部使用 await 表達式暫停異步操作的執(zhí)行,等待 Promise 對象的解析結(jié)果。
在這個例子中,首先使用 fetch 函數(shù)發(fā)送異步的網(wǎng)絡(luò)請求,并使用 await 表達式等待該請求的結(jié)果返回(即 Promise 對象的解析結(jié)果)。然后使用 await 表達式再次等待將響應數(shù)據(jù)解析為 JSON 格式。
使用 try-catch 塊可以捕獲可能出現(xiàn)的錯誤,并進行相應的處理。
最后,調(diào)用 getData() 函數(shù)啟動異步操作。