ES6-async

async

  • async 是一个关键字,它写在函数前面;此时的函数成为async函数

  • 作用:解决异步产生的bug;使异步问题同步化

  • async函数 只要执行,就会返回promise实例对象;不管有没有return

  • 如果async函数中return一个结果,那么调用这个函数,结果是一个promise实例,return的结果会作为这个- promise实例的value的值

 async function foo(p){
            console.log('foo run (p)');
            return 1  // promise.[[promiseValue]]中
        }
​
        var res = foo(1)
        console.log(res);
​
​

 

  • 如果要拿到这个value1值,我们有两种方法,第一种就是promise中的 .then方法

  • .then中回调函数的形参就是async函数中return的这个结果,这样就可以拿到async函数中return的这个结果

    // async 函数是同步执行的
         async function foo(){
            console.log(22222222);
            return 123
        }
          // 1:通过promise.then获取return返回的值
          res.then(data=>{
            console.log(data);
        })

 

  • 第二种方法就是使用await

  • 需要注意的是await要放在async函数内,如果你在async函数体之外使用它,它就会抛出一个语法错误。

  • 提示你await仅在async函数模块中有效

  • await后面跟的应该是一个promise实例,用res去接收结果,输出就可以拿到。

  (async function () {
            console.log('run');
            // 第二种接收函数foo 返回值的方式是 await
            let res = await foo()
​
            console.log(res);
        }())
​
        async function foo() {
            console.log('foo run');
            return 123
        }

 

  • 另外async和await可以用于同步化异步程序,比如说这个,它的底层是异步的,通过promise.then-cal1back形参获取

  • async和await和Promise之间关系是相辅相成的,执行async函数,返回的是Promise对象,await相当于Promise的then

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值