初遇async和await
在尝试写Vue项目中的时候,参考别人的项目,发现用到了很多用到async关键字的函数,因为之前只是听说过但是一直没用过,现在自己写就详细了解了一下,只能说初步了解吧。
一、异步函数
async声明的函数表示这是一个异步函数,所以是不会阻塞后面的函数的执行的。而await则是必须在async声明的函数中才能使用,像下边这个例子中,await会阻塞当前函数的执行,如果第一个await没有拿到step1返回的Promise的话就会暂缓执行,等拿到结果后会返回一个Promise处理后的结果(相当于就是在await中进行了 .then 操作)。
// async await方式
async function doIt() {
console.time("doIt");
const time1 = 300;
const time2 = await step1(time1);
const time3 = await step2(time2);
const result = await step3(time3);
console.log(`result is ${result}`);
console.timeEnd("doIt");
}
doIt();