美文网首页
async函数

async函数

作者: CRUD_科科 | 来源:发表于2018-10-11 15:19 被阅读0次

1、什么是async

async其实是ES7的才有的关键字,async的意思是"异步",顾名思义是有关异步操作有关的关键字。async函数的使用方式,直接在普通函数前面加上async,表示这是一个异步函数,在要异步执行的语句前面加上await,表示后面的表达式需要等待。async是Generator的语法糖,相比较Generator函数在以下四方面做了改进。

2、优点

  • Generator函数是需要调用next指令来运行异步的语句,async不需要调用next,直接像运行正常的函数那样运行就可以
  • 语义化更明确,相比较于Generator的*和yield,async和await更明确。
  • yield命令后面只能是 Thunk 函数或 Promise 对象,而async函数的await命令后面,可以是Promise 对象和原始类型的值(数值、字符串和布尔值,但这时等同于同步操作)。
  • async直接返回一个promise对象,可以用then和cache来处理。

3、用法

  • 函数声明
async function foo() {}
  • 表达式声明
var bar = async function () {}
  • 对象声明
var obj = {
    async bazfunction(){
    }
}
  • 箭头函数声明
var fot = async() => { }

4、await 语句

  • await后面是一个promise对象,如果不是,会转成一个resolve的promise对象
      async function f() {
          return await 123;
      }
      f().then(function (a) {
          console.log(a);
      })
  • await后面的promise对象,如果reject,则reject参数会被cache参数接收到,写不写return都可以,并且reject下面的代码不会执行,如果想下面的代码执行,必须用try cache包住
      async function a() {
           try{
              await Promise.reject('出错了!')
           }catch (e){
              return await Promise.resolve('请重新填写') 
           }
      }
      a().then(function () {
         console.log(err);
      }).catch(function (err) {
          console.log(err);
      })

上面的代码如果不用try cache包裹reject,则下面的代码不会执行,并且reject语句是不用return返回的,resolve语句是需要用return返回;

相关文章

  • async和await的使用

    async函数 什么是async函数? async函数是使用async关键字声明的函数。 mdn文档:https:...

  • JS中的async/await -- 异步隧道尽头的亮光

    async函数 简单解释async函数就是Generator函数的语法糖。 Generator函数写法 async...

  • 2018-05-22

    async 函数 1. 含义 async 函数是 Generator 函数的语法糖。async函数将Generat...

  • ES8(13)、await 和 async 的用法

    async函数是使用async关键字声明的函数。 async函数是AsyncFunction构造函数的实例, 并且...

  • async函数

    async函数 async函数的含义 简单来说:async 函数就是 Generator 函数的语法糖下面是两个是...

  • ES8-async&await

    async函数是使用async关键字声明的函数,async函数是AsyncFunction构造函数的实例,返回值是...

  • async 函数(转载)

    async 函数 含义 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。 async 函数是...

  • ES7 Async/Await快速入门

    用法: 使用async 声明函数,在async函数内使用await async function xxx(){aw...

  • ES6——异步操作

    async 函数 ES2017 标准引入了 async 函数,使得异步操作变得更加方便。async 函数是什么?一...

  • async/await 原理及简单实现

    解决函数回调经历了几个阶段, Promise 对象, Generator 函数到async函数。async函数目...

网友评论

      本文标题:async函数

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