async await返回值
时间: 2023-10-19 12:36:12 浏览: 140
async_await_wait_result.rar
在 JavaScript 中,`async` 函数是用于定义一个返回 `Promise` 对象的异步函数。而 `await` 关键字则用于暂停当前 `async` 函数的执行,等待一个 `Promise` 对象的解决(即状态变为已完成)并返回其解决值。
关于 `async` 函数的返回值,有以下几种情况:
1. 如果 `async` 函数中没有使用 `return` 语句,或者使用 `return` 但没有指定返回值,则该函数返回一个已经解决(resolved)的 `Promise` 对象,其解决值为 `undefined`。
2. 如果 `async` 函数中使用了 `return` 语句并指定了返回值,则该函数返回一个已经解决的 `Promise` 对象,其解决值为指定的返回值。
3. 如果在 `async` 函数中抛出了一个异常(使用 `throw` 语句),那么该函数返回一个已经拒绝(rejected)的 `Promise` 对象,其拒绝原因为抛出的异常。
需要注意的是,只有在 `async` 函数内部才能使用 `await` 关键字。在其他地方使用 `await` 将会导致语法错误。此外,使用 `await` 关键字时,可以通过包裹在 `try-catch` 块中来捕获可能抛出的异常。
下面是一个示例代码:
```javascript
async function fetchData() {
try {
const response = await fetch('https://api.example.com/data');
const data = await response.json();
return data;
} catch (error) {
console.error('Error:', error);
throw error;
}
}
fetchData()
.then(result => console.log('Result:', result))
.catch(error => console.error('Error:', error));
```
在上面的代码中,`fetchData` 是一个 `async` 函数,它通过使用 `await` 关键字来暂停执行并等待 `fetch` 请求的结果。如果请求成功,解析 JSON 数据后将其返回;如果请求失败,则抛出一个异常。使用 `then` 方法可以获取成功时的结果,而使用 `catch` 方法可以捕获异常情况。
阅读全文