async返回的是promise对象
尝试.then
也可以返回promise
此时data变成200了,也就是如果不是promise对象 async会自动封装成promise返回。
await 相当于 promise的.then
data 300
data1 400
案例3
data2 200
如果promise是reject状态可以通过trycatch捕获
注意点
如果是reject状态那么 await是不会执行的
解决:可以通过trycatch
异步的本质
重点
注意:await后面的都是异步 但不包含本身,所以async2是会执行的
总结 也就是语法层面,使用同步语法写异步代码,但还是逃不了异步的使用
变种
答案
最后:异步的本质——》JS是单线程的——》异步需要回调,即使使用async-await-》异步都基于eventLoop的实现规则。