async函数

Last updated: ... / Reads: 41 Edit

async 函数是 ECMAScript 2017 引入的一种异步编程的语法糖,它使得异步代码更加清晰、易读和易写。通过在函数前面加上 async 关键字,函数将返回一个 Promise 对象,而函数内部的异步操作可以使用 await 关键字来等待其完成。

以下是 async 函数的基本结构:

async function myAsyncFunction() {
  // 异步操作
  // 使用 await 等待异步操作完成
  // 返回一个 Promise 对象
  return result; // 结果将被包装成一个已解决的 Promise 对象
}

await 关键字只能在 async 函数中使用,它用于等待一个返回 Promise 对象的表达式完成。当 await 后面的表达式成功完成时,async 函数会继续执行;如果表达式返回的是一个被拒绝的 Promise 对象,async 函数将抛出一个错误。

以下是一个简单的示例:

function resolveAfter2Seconds() {
  return new Promise(resolve => {
    setTimeout(() => {
      resolve('Resolved after 2 seconds');
    }, 2000);
  });
}

async function asyncExample() {
  console.log('Start');

  try {
    const result = await resolveAfter2Seconds();
    console.log(result);
  } catch (error) {
    console.error('Error:', error);
  }

  console.log('End');
}

asyncExample();

在上述例子中,asyncExample 函数中的 await resolveAfter2Seconds() 将会等待 resolveAfter2Seconds 函数返回的 Promise 对象完成。由于使用了 await,整个函数变得像同步代码一样易于理解。

async 函数的错误处理通常使用 try...catch 语句,以便捕获异步操作中的错误。需要注意的是,async 函数总是返回一个 Promise 对象,无论其内部是显式地使用 return 返回值,还是隐式地返回。


Comments

Make a comment