返回

异步编程只需一分钟,教你掌握Async/Await

前端

Async/Await简介

Async/Await是JavaScript中用于编写异步代码的新语法。它建立在Promise之上,允许我们编写看起来像同步代码的异步代码。

Async/Await的基本语法如下:

async function myAsyncFunction() {
  const result = await someAsyncOperation();
  return result;
}

函数myAsyncFunction是一个异步函数,它使用async定义。函数体中,await someAsyncOperation()是一个异步操作,它会返回一个Promise。当异步操作完成时,函数会继续执行。

实例:货币转换器

为了演示如何使用Async/Await,我们创建一个货币转换器,该转换器从两个不同的API中异步获取数据。

async function convertCurrency(amount, fromCurrency, toCurrency) {
  // 从第一个API获取汇率
  const rate = await fetch(`https://api.exchangerate-api.com/v4/latest/${fromCurrency}`);
  const data = await rate.json();
  const rateFromCurrency = data.rates[toCurrency];

  // 从第二个API获取汇率
  const rate2 = await fetch(`https://api.currencyfreaks.com/latest?base=${fromCurrency}`);
  const data2 = await rate2.json();
  const rateFromCurrency2 = data2.rates[toCurrency];

  // 计算转换后的金额
  const convertedAmount = amount * (rateFromCurrency + rateFromCurrency2) / 2;

  return convertedAmount;
}

函数convertCurrency是一个异步函数,它使用async关键字定义。函数体中,有两个异步操作:

  • await fetch()从第一个API获取汇率
  • await fetch()从第二个API获取汇率

这两个异步操作都返回一个Promise。当这两个异步操作都完成后,函数会继续执行。

函数convertCurrency最后返回转换后的金额。

结论

Async/Await是一种非常强大的工具,可以帮助我们编写更易于阅读和维护的异步代码。在本文中,我们通过一个货币转换器的实例演示了如何使用Async/Await。