async是JavaScript的一个关键字,用于定义异步函数,并对异步函数的使用提供了更加简便和直观的方式。
async函数是一种特殊的函数,它返回一个Promise对象,可以通过then方法或async/await语法来获取异步函数执行的结果。在异步函数内部,可以使用await关键字等待Promise对象返回结果,而不必使用回调函数或Promise链等复杂的异步编程方式。
async函数的基本语法如下:
- async function <函数名>(<参数列表>){
- // 函数体
- return <返回值>;
- }
其中,<参数列表>和<返回值>都是可选的。
在异步函数内部,可以使用await关键字等待Promise对象返回结果,它的基本语法如下:
let result = await <Promise对象>;
这行代码会让JavaScript等待Promise对象返回结果,然后将结果赋值给result变量。如果Promise对象返回了一个reject状态,那么会抛出一个错误,函数执行会中止,并且Promise对象的catch方法会被执行。
下面是一个简单的例子,展示了如何使用async和await来处理异步操作:
- async function fetchUser() {
- try {
- const response = await fetch('/api/user');
- const data = await response.json();
- return data;
- } catch (err) {
- console.error(err);
- }
- }
在这个例子中,fetchUser函数使用了async关键字来定义异步函数。函数内部使用了await关键字等待fetch方法返回一个Promise对象,然后使用await等待Promise对象的json方法返回JSON格式的数据。
在实际应用中,async和await通常会与Promise对象一起使用,以便更加方便地处理异步操作。