async和await关键字的作用和用法

async和await

async和await的出现

async和await出现是在es6中,为了去简化promise的写法的。使用promise结合生成器简化promise的写法

  1. async关键字:简化创建promise的
  2. await关键字:等待,相当于then方法
    await关键字必须写在被async修饰的函数中

async

async 作为关键字放在一个函数前面表示函数是个异步函数,异步函数也就意味着该函数的执行不会阻塞后面代码的执行。写一个简单的async函数

async function test(){
    return "hello world"
}
test().then((res)=>{
    console.log(res)
})
console.log("我虽然在后面但是我先执行");

执行结果是
在这里插入图片描述

使用async修饰的函数 他返回的是一个promise对象,我们需要使用promise的方法调用,加载,并不会阻塞进程,但是因为他是异步的所有他等待同步执行完在去输出hello world
虽然我们的console.log在后面输出,但是在执行node代码的时候,他却是先输出的

await

而 await关键字必须写在被async修饰的函数中,但是他会阻塞进程,await是等待的意思,那么它等待什么呢,它后面跟着什么呢?其实它后面可以放任何表达式,不过我们更多的是放一个返回promise 对象的表达式。注意await 关键字只能放到async 函数里面
这是个简单的关于异步等待的一个函数

async function async1(){
    console.log('async1 start')
    await async2()
    console.log('async1 end') 
}
async function async2(){
    console.log('async2')
    await async3()
    console.log("async2 end")
}
async function async3(){
    console.log('async3')
}
async1();

在我们的async执行的时候,async2阻塞队列需要等待async2里面的东西执行完,在执行async1的输出

在这里插入图片描述

综上所述:async和await都是函数关键字修饰词,都会将他们修饰的函数变成异步的函数,但有一点的不同,就是await关键字必须卸载async修饰的函数里面并且会阻塞队列

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值