ES6语法—Async && Await

40 阅读1分钟

一、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")
}