async/await
是JavaScript中用于处理异步操作的语法糖,它是在ES2017(ES8)引入的。async
函数用于定义一个异步函数,而 await
用于等待一个异步操作完成,并将结果返回。
主要特点和用法包括:
- async 函数:
- 使用
async
关键字定义,如async function myFunction() { }
。 - 异步函数总是返回一个 Promise 对象,不管你在函数内部返回什么。
- await 操作符:
- 在异步函数内部使用
await
操作符来等待一个异步操作完成。 await
后面通常是一个返回 Promise 对象的表达式,如await someAsyncFunction()
。
- 处理异步操作:
async/await
简化了异步代码的编写,使其看起来更像同步代码,提高了可读性。- 通过
await
等待异步操作完成,然后使用返回的值。
- 错误处理:
- 可以使用
try...catch
来捕获异步操作中的错误。 - 如果异步操作抛出异常,
await
表达式会使 Promise 被拒绝,进入catch
块。
示例:
async function fetchData() { try { const response = await fetch('https://api.example.com/data'); const data = await response.json(); console.log(data); } catch (error) { console.error('Error:', error); } } fetchData();
在这个示例中,fetchData
函数是异步函数,使用 await
等待 fetch
操作完成,然后等待解析响应的 JSON 数据。如果发生错误,它将被捕获并在 catch
块中处理。
async/await
是现代JavaScript中处理异步操作的强大工具,它使异步代码更易于理解和维护,尤其在处理Promise对象时非常有用。