简说Promise,async-await异步方法
-
Promise底层原理也是使用定时器完成异步,Promise有三种状态,pedding,fillful,reject,pedding是准备阶段,fillful是完成阶段,reject是失败阶段。成功即通过resolve()返回目标值,再调用then中的回调函数。失败即通过reject()返回错误信息,再调用catch中的回调函数,解决了回调地狱问题。
-
async-await封装了多一层,是语法糖,实际执行也是用Promise,async是在函数前添加,执行完返回一个Promise,await接受一个Promise对象,会接受resolve的返回值,等返回值返回的时候,在执行下一行代码,也就是同步的代码执行异步,一般async-await里可用try{}catch(){}去接受错误的状态,一般用在后端中,我习惯与Promise公用,比如:
async function getData(){
const res = await axios.get("http:45412.com")
.then(res => res)
.catch(err=> console.log(err))
console.log(res)
//拿到res进行一系列处理
}