前端异步async await理解意思是什么

先从字面意思来理解,async 是“异步”的意思,而 await 是等待的意思。所以应该很好理解 async 用于申明一个 异步的function(实际上是async function 对象),而 await 用于等待一个异步任务执行完成的的结果。
并且 await 只能出现在 async 函数中。

await 操作符

await 表达式会暂停当前 async function 的执行,等待 Promise 处理完成。若 Promise 正常处理(fulfilled),其回调的resolve函数参数作为 await 表达式的值,继续执行async function。若 Promise 处理异常(rejected),await 表达式会把 Promise 的异常原因抛出。另外,如果 await 操作符后的表达式的值不是一个 Promise,则返回该值本身。

按照mdn解释 await会暂停当前async 函数执行,并且await 后面是一个表达式,即这个await
等待的是一个表达式(这个表达式返回promise 对象或者一个具体的值):

1.假如这个表达式如果返回的是一个Promise 对象, 那么它的返回值,实际上就是 Promise 的回调函数 resolve 的参数,如果这个Promise rejected 了,await 表达式会把 Promise 的异常抛出。
2.假如这个表达式如果返回的是一个常量,那么会把这个常量转为Promise.resolve(xx),同理如果没有返回值也是Promise.resolve(underfind)

案例:

.then(async (res) => {
                that.buttonArr = res.data; // 这个数组就是typeid在的数组      //  先执行1111
                that.loadTypeId();
                await that.getKLine();                                      //  在执行22222
                that.getTotal();
            });

注意, await 关键字仅仅在async function(res)或 async function中有效!!!

个人理解:出现就是说前边的没执行玩呢,也就是前边的数据还没更新呢,后边就执行了,就会报错,因为接口请求的时间是不一定的

点我:推荐看我的另一篇完整版:前端异步方案async/await和Promise(resolve与reject)含义、区别、案例、总结(带源码)

感觉文章好的话记得点个心心和关注和收藏,有错的地方麻烦指正一下,如果需要转载,请标明出处,多谢!!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值