async 函数自动返回 Promise,普通返回值被包装为 fulfilled 状态;支持 await 暂停执行并等待 Promise,await 仅限 async 函数内使用;错误需用 try/catch 捕获以避免 Promise rejected。

在 JavaScript 中,用 async 关键字声明的函数会自动返回一个 Promise,无论函数体内是否显式返回 Promise。
基本写法
只需在 function 关键字前加上 async,或在箭头函数前加 async:
-
函数声明:
async function myAsyncFn() { return "done"; } -
函数表达式:
const myAsyncFn = async function() { return "done"; }; -
箭头函数:
const myAsyncFn = async () => { return "done"; };
返回值会被自动包装成 Promise
即使你 return 一个普通值(比如字符串、数字、对象),async 函数也会把它包装成已兑现(fulfilled)的 Promise:
使用约定式提交(Conventional Commits)生成标准化的 Git 提交信息。适用于以下场景: (1) 暂存更改时需要提交信息; (2) 审查 diff 时希望获得结构化摘要; (3) 编写 PR 描述或变更日志(changelog)条目; (4) 用户明确要求“为本次更改编写提交信息”。 该功能会分析已暂存/未暂存的 diff,并生成按类型(type)划分范围的提交信息。
async function sayHello() {
return "Hello";
}
sayHello(); // 返回 Promise<string>,等价于 Promise.resolve("Hello")
可以配合 await 使用
async 函数内部允许使用 await 暂停执行,等待 Promise 完成。这是它最常用的价值:
-
await只能在async函数中使用 -
await后面可以是任意 Promise 或原始值(原始值会被自动转为 resolved Promise) - 遇到
await时,函数暂停,但不会阻塞主线程,控制权交还给事件循环
错误处理要记得用 try/catch
async 函数中抛出的错误,或 await 的 Promise 被拒绝(rejected),都会让函数返回的 Promise 进入 rejected 状态。推荐用 try/catch 捕获:
async function fetchData() {
try {
const res = await fetch("/api/data");
return await res.json();
} catch (err) {
console.error("请求失败:", err);
throw err; // 或返回默认值
}
}

















