编写异步函数;try/catch;并行与串行
创建异步函数、等待结果、捕获错误,并比较串行与并行模式
编写异步函数;try/catch;并行与串行 是 CoddyKit 上的免费 JavaScript Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 JavaScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 JavaScript Academy 课程共包含 3 节课。
async/await 简介
目标:安全地使用 async/await。
- 创建异步函数
- 等待值
- 使用 try/catch 处理错误
- 并行与顺序执行

小型 Promise 辅助函数
创建一个基于 Promise 的小型辅助函数,用来测试等待操作。
// delay returns a Promise that resolves after ms
function delay(ms, value) {
return new Promise(function (resolve) {
setTimeout(function () { resolve(value); }, ms);
});
}
// Example usage
delay(10, "ok").then(function (v) {
console.log("delay:", v);
});

异步函数基础
async 表示一个会返回 Promise 的函数;在函数内部可以使用 await。
// An async function can use await inside
async function greet() {
const name = await delay(5, "Ayla");
console.log("Hello,", name);
}
// Call it
greet();

使用 await 的 try/catch
如果某一步可能拒绝,请使用 try/catch 包裹等待操作。
// Simulate a failing task
function failAfter(ms, message) {
return new Promise(function (resolve, reject) {
setTimeout(function () { reject(new Error(message)); }, ms);
});
}
async function runSafe() {
try {
const v = await failAfter(5, "boom");
console.log("Value:", v);
} catch (e) {
console.log("Caught:", e.message);
}
}
runSafe();

顺序执行模式
顺序执行:每个 await 都会等待前一步完成;总时间会累加。
// Sequential: total time ~ A + B
async function sequential() {
const a = await delay(8, "A");
const b = await delay(8, "B");
console.log("seq:", a + b);
}
sequential();

使用 all 并行执行
并行执行:先启动任务,然后 await Promise.all;总时间约为 max(A, B)。
// Parallel: start both, then await together
async function parallel() {
const pa = delay(8, "A");
const pb = delay(8, "B");
const results = await Promise.all([pa, pb]);
console.log("par:", results.join(""));
}
parallel();

并行与顺序执行测验
快速检查:对于相互独立的任务,哪种模式更快?

复习
复习:您编写了异步函数,等待了值,使用 try/catch 处理了错误,并比较了顺序等待与更快的并行 Promise.all。

常见问题解答
「编写异步函数;try/catch;并行与串行」课时是免费的吗?
是的 — 「编写异步函数;try/catch;并行与串行」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 JavaScript Academy 课程的其余内容,请升级到 CoddyKit PRO。 JavaScript Academy 课程共包含 3 节课。
「编写异步函数;try/catch;并行与串行」这节课中我会学到什么?
创建异步函数、等待结果、捕获错误,并比较串行与并行模式 你通过在浏览器中直接运行的动手代码来练习 JavaScript Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 JavaScript Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 JavaScript Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 3 节。
「编写异步函数;try/catch;并行与串行」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 JavaScript Academy 课中编写并运行代码吗?
能。每节 JavaScript Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 编写异步函数;try/catch;并行与串行
- 超时与使用 AbortController 中止操作
- 重试与退避模式