一、Async/Await怎么用(如何通过同步的方式实现异步)?
async 作为一个关键字放到函数前面,表示这个函数是一个异步函数,因为 async 就是异步的意思, 异步函数也就意味着该函数的执行不会阻塞后面代码的执行。
await 是等待的意思,用于等待一个异步方法执行完成,await 关键字只能放到 async 函数里面。
function takeLongTime() {
return new Promise(resolve => {
setTimeout(() => resolve("long_time_value"), 1000);
});
}
async function test() {
const v = await takeLongTime();
console.log(v);
}
test();
二、Async/Await优点:
async / await 的优势在于处理 then 的调用链,能够更清晰准确的写出代码(更像同步函数),并且也能优雅地解决回调地狱问题。
三、Async/Await缺点:
await 将异步代码改造成了同步代码,如果多个异步代码没有依赖性却使用了 await 会导致性能上的降低。
四、Async/Await如何捕获异常?
用 try / catch 可以捕获异常:
async function test(){
try{
const res=await test1()
}catch(err){
console.log(err)
}
console.log("test")
}