什么是async和await?怎么捕获异常?
1.async和await?
async/await主要⽤于进⾏异步请求。
1.1被async修饰的函数是异步函数,异步函数就是代码执⾏起来不会阻塞后⾯后⾯代码的进程。
1.3async返回⼀个Promise对象,await等待⼀个Promise对象,⽽await等待的就是async返回的Promise对象返回的结果。async返回⼀个promise对象
async function test(){
return "hello word"
}
console.log(test()) //Promise {<fulfilled>: "hello word"}
test().then((res)=>{
console.log(res)//hello word
}).catch((err)=>{
console.log(new Error())
})
要是想得async函数的结果,⽤.then()和.catch()⽅法来注册回调函数
注意:若异步函数内部返回的是⼀个直接量,则async会把这个直接量⽤solve转成Promise对象
总结:async函数执⾏返回⼀个Promise对象,并把函数内部的值⽤solve进⾏了封装
2.await等待
2.1 await放在异步函数内部,await后⾯跟⼀个表达式,⼀般都是Promise对象的表达式
2.2 在async函数执⾏过程中,遇到await关键字时会先暂停,等触发的异步操作完成后,在执⾏async函数。
function test1(){
console.log("test1")
};
async function test(){
await和async使用方法const res=await test1()
console.log("test")
}
test();//test1 test
3.2await等到是后边表达式的结果返回的结果有两种①Promise对象②不是promise对象
①Promise对象
如果等待的对象是promise,会暂停await后⾯的执⾏,先执⾏async外部的同步代码,然后再执⾏内部的代码,并将得到的结果直接作为await的结果。
②⾮Promise对象
如果等待的是Promise对象,同样会暂停await后⾯的执⾏限制性async外部的同步代码,等着 Promise 对象 fulfilled,然后把resolve 的参数作为 await 表达式的运算结果。
3.异常捕获
try/catch捕获异常
async function test(){
const res=await test1().catch((err)=>{
console.log(new Error)
})
console.log("test")
}
async function test(){
try{
const res=await test1() }catch(err){
console.log(err)
}
console.log("test")
}
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论