10个必备的JavaScript async/await工具函数分享

作者:闭包旅人

时间:2026-10-31

浏览:592

本文分享了10个JavaScript中常用的async/await工具函数示例,涵盖异步数据获取、多任务并行与顺序执行、错误处理、延迟执行及链式操作等场景。通过具体代码解析,展示如何利用async/await提升异步代码的可读性与简洁性,帮助开发者更高效地处理复杂异步逻辑。

文章目录

在JavaScript异步编程中,async/await是一项核心特性。以下整理了10个常用的async和await函数示例,并逐一解析其代码用途与适用场景。

1. 异步获取数据

async function fetchData() {
  const response = await fetch('https://api.example.com/data');
  const data = await response.json();
  return data;
}

该函数通过await关键字等待异步请求的返回结果,并将响应数据解析为JSON格式。这种方式允许开发者以同步代码的逻辑处理异步数据,避免了传统回调函数的嵌套复杂性。

2. 异步执行多个任务

async function performTasks() {
  const task1 = doTask1();
  const task2 = doTask2();
  await Promise.all([task1, task2]);
  console.log('Tasks completed');
}

此示例利用await等待多个任务同时完成。Promise.all接收包含多个任务的数组,并返回一个新的Promise对象,只有当所有任务都执行完毕后,该Promise才会被解析。

3. 处理异步错误

async function fetchData() {
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    return data;
  } catch (error) {
    console.log('Error:', error);
    throw error;
  }
}

示例中使用try/catch块来捕获异步操作可能抛出的错误。若发生异常,错误信息将被打印输出,随后错误会被重新抛出,以便上层调用者进一步处理。

4. 顺序执行异步任务

async function performTasks() {
  await doTask1();
  await doTask2();
  console.log('All tasks completed');
}

该函数按顺序依次执行两个异步任务。只有当两个任务均执行完毕后,程序才会打印一条完成消息,确保操作的先后顺序。

5. 异步循环

async function processItems(items) {
  for (const item of items) {
    await processItem(item);
  }
  console.log('All items processed');
}

在此示例中,使用await在循环体内逐个处理列表中的每一项。待所有项目处理完毕后,程序会打印一条完成消息,确保循环内的异步操作按序执行。

6. 延迟执行

function delay(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function delayedTask() {
  console.log('Task started');
  await delay(2000);
  console.log('Task completed');
}

delay函数返回一个Promise,在指定的毫秒数后解析。在delayedTask函数中,通过await使任务在等待2秒后继续执行,常用于模拟异步延迟或控制执行节奏。

7. 条件异步执行

async function performTask(condition) {
  if (condition) {
    await doTask1();
  } else {
    await doTask2();
  }
  console.log('Task completed');
}

该示例利用条件语句决定执行哪个异步任务。根据传入条件的不同,程序会执行对应的任务,并在任务完成后打印一条消息,实现基于条件的异步逻辑分支。

8. 并行执行异步任务

async function performTasks() {
  const [result1, result2] = await Promise.all([doTask1(), doTask2()]);
  console.log('Tasks completed:', result1, result2);
}

结合使用Promise.all和解构赋值,可以并行执行多个异步任务。待所有任务完成后,程序将获取并返回各自的结果,适用于需要同时发起多个独立请求的场景。

9. 处理多个并发请求

async function fetchData() {
  const [data1, data2] = await Promise.all([
    fetch('https://api.example.com/data1').then(response => response.json()),
    fetch('https://api.example.com/data2').then(response => response.json())
  ]);
  console.log('Data fetched:', data1, data2);
}

此示例使用Promise.all并发请求多个数据源,并等待所有响应返回。一旦所有数据均被解析为JSON格式,程序即可对获取的数据进行后续处理,提高数据获取效率。

10. 链式异步操作

async function performTasks() {
  const result = await doTask1()
    .then(response => doTask2(response))
    .then(result2 => doTask3(result2));
  console.log('Tasks completed:', result);
}

该示例通过.then方法将多个异步任务链接在一起。doTask1执行完成后,其结果作为参数传递给doTask2,doTask2的结果再传递给doTask3。最终结果在最后的.then块中获取并打印,实现异步操作的链式调用。

上述常用的async和await函数示例展示了在异步编程中如何灵活运用这些工具。借助async/await,开发者能够以更清晰、简洁的方式处理异步操作,显著提升代码的可读性与维护性。

本文介绍了10个必备的JavaScript async/await工具函数。如需了解更多JavaScript async/await相关内容,建议查阅本站过往文章或继续阅读后续系列文章,感谢支持。

实用工具推荐

电子包浆

绿化、压缩、噪点和虚拟水印,自由调节做旧程度。

使用 ›
图片压缩

选择画质和输出格式,预览压缩前后的大小。

使用 ›
相关文章