await
是 JavaScript 中的一个关键字,它仅在 async
函数内部有效。await
用于等待一个 romise
对象解析为其完成值或拒绝值。通过使用 await
,您可以以同步的方式编写异步代码,使代码更易读和易于理解。
以下是关于 await
的一些要点:
1 只能在 async
函数中使用:如果您尝试在非 async
函数中使用await
,那么 JavaScrip 会抛出一个语法错误。
等待
Promise
解析:await
仅与Promise
对象一起使用。它会暂停当前的async
函数的执行,并等待Promise
解析为其完成值或拒绝。错误处理:如果等待的
Promise
被拒绝,那么await
表达式会抛出一个异常。您可以使用try...catch
结构来捕获这些异常。不会阻塞主线程:尽管
await
使异步代码看起来像同步代码,但它实际上不会阻塞主线程。其他代码和异步任务仍然可以在等待期间继续执行。使代码更简洁:与
.then()
和.catch()
方法相比,使用await
可以使异步代码更加简洁和直观。
示例:
async function fetchData() {
try {
let response = await fetch('https://api.example.com/data'); // 等待 fetch 完成
let data = await response.json(); // 等待响应解析为 JSON
console.log(data);
} catch (error) {
console.error('Error fetching data:', error);
}
}
fetchData();
在上面的示例中,fetchData
是一个异步函数,它使用 await
来等待 fetch
函数(返回一个 Promise
)完成,并等待响应的 JSON 解析完成。如果在这些过程中发生任何错误,那么它们会被 catch
块捕获并处理。linklinklink