现代 JS 讲座 async function

发布: (2026年3月15日 GMT+8 18:19)
2 分钟阅读
原文: Dev.to

Source: Dev.to

概述

async 函数返回一个 Async Function 对象。通过使用 asyncawait 关键字,异步处理可以比原始 Promise 更简洁地编写。该特性在 ES2017 中标准化。

基本用法

在函数定义前添加 async 关键字。如果函数返回非 Promise 值,它会自动包装成已解决的 Promise。

async function asyncFunc() {
  return 'Amazing!';
}

asyncFunc().then(result => {
  console.log(result); // "Amazing!"
});

带参数的返回值

你可以返回包含参数的值;它仍会被包装在 Promise 中。

async function asyncFuncB(text) {
  return 'Amazing!' + text;
}

asyncFuncB('Indeed!').then(result => {
  console.log(result); // "Amazing!Indeed!"
});

直接返回 Promise

async 函数也可以返回显式的 Promise。

async function asyncFuncC() {
  return new Promise((resolve, reject) => {
    resolve('Wonderful!');
  });
}

asyncFuncC().then(result => {
  console.log(result); // "Wonderful!"
});

相同的逻辑可以更简洁地表达:

async function asyncFuncC() {
  return Promise.resolve('Wonderful!');
}

asyncFuncC().then(result => {
  console.log(result); // "Wonderful!"
});

使用 await

在 async 函数内部,await 操作符会暂停执行,直到等待的 Promise 完成,从而让你无需显式的 .then() 链即可编写代码。

async function awaitFunc() {
  return 'Wonderful!';
}

async function asyncFuncD() {
  const result = await awaitFunc();
  console.log(result); // "Wonderful!"
}

asyncFuncD();

进一步阅读

0 浏览
Back to Blog

相关文章

阅读更多 »

JS 中的 this 关键字

介绍 `this` 关键字在 JavaScript 中常常让初级和高级开发者感到困惑。理解 `this` 并不取决于函数的定义位置…

现代 JS:import 和 export

封面图片:Modern JS:import and export https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fbmf-tech...

现代 JS 讲座:解构赋值

Modern JS Talk:Destructuring Assignment 的封面图片 https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2...