首页 > 技术文章 > async 与 await

dfzj 2020-09-23 21:53 原文

async与await分别都有语法,两种语法结合就可以使异步代码像同步代码一样
async函数:
返回值是一个promise对象(一个普通函数加了async后返回的也是promise对象,对象的状态由函数的返回结果决定,只要是非promise对象,肯定是成功的状态,如果是promise对象,就有里面的结果决定,返回的值,也是里面promise对象的值)这就与promise那一章中.then输出结果一样
当是一个非promise对象时:

 当是一个promise对象时:

 await表达式:

 因为await右侧一般是一个promise对象,那么下面先改造上面的例子

 加上await:(输出结果变成了1,不再是一个promise对象)

如果是失败,async里面就写try{...}catch(){...}
总结:async返回的是一个promise对象不方便使用,有了await就是用来处理promise的,就直接可以拿到真正的值
后面会用到axios这个npm包,他的返回结果就是一个promise对象,用他发请求,用await接收结果非常非常方便!

推荐阅读