async函数返回promise,await在async内等待promise结果并解包,错误需try/catch捕获,互不依赖请求应使用promise.all并发执行。

async 函数是 JavaScript 中处理异步操作的现代方式,它让异步代码写起来像同步代码一样直观,同时底层仍基于 Promise 机制。
async 函数的基本写法
在函数声明前加 async 关键字,函数会自动返回一个 Promise。即使你 return 一个普通值,也会被包装成 resolved 的 Promise。
例如:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
async function fetchData() {
return "Hello";
}
fetchData().then(console.log); // 输出 "Hello"
用 await 暂停执行并获取结果
await 只能在 async 函数内部使用,它会等待右侧的 Promise 完成,并解包出 resolve 的值。如果 Promise 被 reject,会抛出错误,需要用 try/catch 捕获。
- await 后面可以是 Promise,也可以是普通值(会立即返回)
- await 不会阻塞整个线程,只是暂停当前 async 函数的执行
- 多个 await 是串行执行的,想并发可配合 Promise.all()
错误处理要靠 try/catch
await 遇到 rejected Promise 会直接抛异常,所以推荐用 try/catch 包裹可能失败的操作:
async function getUser(id) {
try {
const res = await fetch(`/api/users/${id}`);
if (!res.ok) throw new Error(`HTTP ${res.status}`);
return await res.json();
} catch (err) {
console.error("获取用户失败:", err.message);
throw err;
}
}
并发请求:避免无谓等待
如果多个请求互不依赖,不要一个一个 await,否则耗时叠加。改用 Promise.all() 并发发起:
async function loadUserData() {
const [user, posts, comments] = await Promise.all([
fetch("/api/user").then(r => r.json()),
fetch("/api/posts").then(r => r.json()),
fetch("/api/comments").then(r => r.json())
]);
return { user, posts, comments };
}Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










