美文网首页前端前端
JS 中的 async/await

JS 中的 async/await

作者: limengzhe | 来源:发表于2020-09-23 14:35 被阅读0次

async/await 是什么?

  • async/awaitES2017 中新增的异步解决方案;
  • await 只能在异步函数 async 中使用;
  • async 返回一个 Promise 对象;
  • await 等待一个 Promise 对象。

如何使用?

  • 一个 async 异步函数可以包含 0 个或多个 await 指令,当代码运行到 await 的时候,该函数会进入等待模式并转让控制权,直到被等待的 Promiseresolved() 或者 rejected() 为止;
  • 如果 Promiseresolve() 则以返回值的形式传递到等待中的 await 表达式中,并执行之后的代码;
const pm = function () {
  return new Promise(resolve => {
    setTimeout(() => {
      console.log("pm");
      resolve("ok");
    }, 2000);
  });
};

async function aa() {
  await pm().then(res => {
    console.log(res);
  });
  // 接下来要被执行的代码
  console.log(`aa`);
}

aa();
pm // 2000ms later
ok
aa
  • 如果 Promisereject()await 之后的代码不会被执行,此时可以使用 try/catch 进行捕获。
const pm = function () {
  return new Promise((resolve, reject) => {
    console.log("pm");
    reject();
  });
};

async function aa() {
  try {
    await pm().then(res => {
      console.log(res);
    });
  } catch {
    console.log(`aa`);
  }
}

aa();
pm
aa

相关文章

  • es6--async和await

    async 和 await被称为js异步的最终解决方案,那么我们来了解下:async:异步方法, await:等待...

  • 小程序 async await的使用

    在要使用async await的文件中,引入这个regeneratorRuntime.js promisify.j...

  • JS 中的 async/await

    async/await 是什么? async/await 是 ES2017 中新增的异步解决方案; await 只...

  • js异步编程(updating)

    js 异步编程方式: Promise,generator/yield,async/await 回掉函数 js事件监...

  • async和await

    浅谈Async/Await用 async/await 来处理异步 async和await async:声明一个异步...

  • 目录

    JS篇 Promise Iterator Generator async-await[https://www.ji...

  • 2019-03-06

    1.行文思路 JS中处理异步 由callback->promise->generater->async/await...

  • JS异步编程,你不得不知道的Generator的用法

    前面的文章中为大家讲解了Promise、async/await、Event Loop 等关于JS异步的文章,其中,...

  • ES8(一) —— async&await

    目录 async和普通函数的区别 await async/await处理多回调异步 async和await必须配合...

  • async

    async/await特点 async/await更加语义化,async是“异步”的简写,async functi...

网友评论

    本文标题:JS 中的 async/await

    本文链接:https://www.haomeiwen.com/subject/rinnyktx.html