老师你好,async定义的函数
async定义的函数,是不是只把 函数内部await上下的语句 变成同步执行的了。但是对于函数之外的语句,调用async函数,还是一个异步的执行?
还是说,async函数定义之后,可以把全部的代码,都看成是同步的了?
26
收起
正在回答
1回答
同学你好,对于你的问题解答如下:
1、先了解下,由于await后面跟着的是定时器时(定时器是一个异步操作),不会等待定时器里面的代码执行完,而是直接执行后面的代码,然后再执行定时器中的代码,实际开发中,一般不会直接在await后面书写定时器的,所以这属于await一个特殊的注意事项,同学特殊记一下即可,在前面的图文节中也有介绍,可以回顾下,加深理解与记忆https://class.imooc.com/lesson/1639#mid=45809
2、然后,我们不考虑这个特殊情况,再来分析同学的疑问,解答如下:
(1)async 定义的函数只会将函数内部await后面跟着的异步操作变成同步执行,函数内部的其他异步操作,依然是异步执行的,示例:
await后面的timeout(2000)会变成同步执行,而下面的timeout(3000)就是异步执行的,所以控制台的输出结果为2000 end 3000 如下:
(2)对于函数之外,调用async定义的函数,是一个异步的操作,示例:
控制台先输出1,2,然后才输出调用start函数之后的结果,如下:
祝学习愉快~
相似问题
登录后可查看更多问答,登录/注册
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星