0Pricing
JavaScript Academy · 课时

编写异步函数;try/catch;并行与串行

创建异步函数、等待结果、捕获错误,并比较串行与并行模式

编写异步函数;try/catch;并行与串行 是 CoddyKit 上的免费 JavaScript Academy 课时。 这是第 1 节课,共 3 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 JavaScript Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 JavaScript Academy 课程共包含 3 节课。

async/await 简介

目标:安全地使用 async/await。

  • 创建异步函数
  • 等待值
  • 使用 try/catch 处理错误
  • 并行与顺序执行
编写异步函数;try/catch;并行与串行 — 插图 1

小型 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);
});
编写异步函数;try/catch;并行与串行 — 插图 2

异步函数基础

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();
编写异步函数;try/catch;并行与串行 — 插图 3

使用 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();
编写异步函数;try/catch;并行与串行 — 插图 4

顺序执行模式

顺序执行:每个 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();
编写异步函数;try/catch;并行与串行 — 插图 5

使用 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;并行与串行 — 插图 6

并行与顺序执行测验

快速检查:对于相互独立的任务,哪种模式更快?

编写异步函数;try/catch;并行与串行 — 插图 7

复习

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

编写异步函数;try/catch;并行与串行 — 插图 8

常见问题解答

「编写异步函数;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 反馈 — 无需本地设置。

此课程中的所有课时

  1. 编写异步函数;try/catch;并行与串行
  2. 超时与使用 AbortController 中止操作
  3. 重试与退避模式
← 返回 JavaScript Academy