JavaScript async、await详解

66 阅读1分钟

async/await是什么?

async用于申明一个函数是异步的;
await则可以认为是async await的简写形式,是等待一个异步方法执行完成的。

构建一个 Promise

JavaScript 使用 Promise文章内讲解过的 Promise函数

const myPromise = new Promise((resolve, reject) => {
  // 在这个例子中,我们使用 setTimeout(...) 来模拟异步代码;
  // 在实际情况中,你可能会使用类似 XHR 或 HTML API 等。
  setTimeout(() => {
    // 举例成功
    const success = true;
    if (success) {
      // 当异步操作成功时,我们调用 resolve(...)。
      resolve("成功!"); 
    } else {
      // 当其失败时,调用 reject(...)。
      reject("失败了...");
    }
  }, 300);  
});


// 这是之前讲到的 使用 `then` 和 `catch` 处理它的结果
myPromise.then(result => {
    console.log(result); // 输出 "成功!"
}).catch(error => {
    console.error(error); // 如果操作失败,输出 "失败了..."
});
构建一个异步函数 并 使用

async function*  关键字可用于在表达式中定义一个异步生成器函数。

await 操作符用于等待一个Promise 兑现并获取它兑现之后的值。它只能在异步函数或者模块顶层中使用。

async function getMyPromise() {
  const res = await myPromise();
  console.log(res); // 成功会输出 "成功!",如果操作失败,输出 "失败了..."
}