javascript await
时间: 2024-11-28 14:21:08 浏览: 13
在JavaScript中,`await` 是 `async` 函数的关键字,用于实现异步编程中的同步执行效果。`async` 函数返回的是一个Promise,而使用 `await` 可以让开发者在代码中直接读取Promise的结果,而不是通过`.then()`链式调用。
**示例1:使用await处理异步任务(如Promise)[^1]**:
```javascript
async function testAwt() {
// 使用await暂停并等待testAsy函数的完成
let result = await testAsy("async");
console.log(result); // 当testAsy的Promise解析后,输出"async"
}
// 异步函数testAsy,模拟延迟操作
function testAsy(x) {
return new Promise((resolve) => {
setTimeout(() => {
resolve(x);
}, 3000);
});
}
testAwt();
```
**示例2:错误处理与await结合**:
```javascript
async function fn() {
try {
// 使用await处理可能失败的Promise
let a = await Promise.reject('error'); // 这里会抛出错误
} catch (error) {
console.log(error); // 如果Promise被拒绝,这里会捕获到错误并打印
}
}
fn();
```
**关于Async函数返回值**:
`async` 函数实际上并不返回任何值,而是返回一个`Promise`。只有当`async`函数中的`return`语句后面跟着一个Promise时,这个Promise才会被返回。如果`async`函数体内的所有异步操作都完成了并且没有显式的`return`语句,则返回一个已解决的空Promise(即`Promise.resolve()`)。如果函数中有`await`关键字,那么它的执行会被阻塞直到Promise解析或拒绝。
阅读全文