提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
上一节讨论了以下promise对象的使用方法
提示:以下是本篇文章正文内容,下面案例可供参考
一、promise后面的基础原理(语法糖)
async+await就是语法糖的实现,通过语法糖实现输出
上一节说到,输出是通过promise对象的then来实现,底层原理就是通过语法糖来实现,下面示例是通过语法糖实现,可以对比来看,比较不同
二、方法实现
1.代码如下(示例):
function p(){
return new Promise((正常,异常)=>{
setTimeout(()=>{//设置定时器
console.log('123');
let a = console.log('内部变量');
console.log(a);
},3000)//延迟3s输出
})
}
(async()=>{//函数的实现(async+await就是语法糖的实现)
let res = await p()//用一个变量接收
console.log(res);
})
()//调用函数
处理异常时的写法
function p(){
return new Promise((正常,异常)=>{
setTimeout(()=>{//设置定时器
console.log('123');
let a = console.log('内部变量');
// 正常(a)
异常('抛出异常')
},3000)//延迟3s输出
})
}
(async()=>{//函数的实现(async+await就是语法糖的实现)
try{
let res = await p()//用一个变量接收
console.log(res);
}
catch(e){
console.log(e);
}
})
()//调用函数
总结
语法糖的实现好处就在于:
代码的可读性较高,如果通过promise对象的then来实现,是通过异步来实现(这里在之前的文章讲到过)。
但是通过语法糖来实现代码的可读性相当高,可以回过头去读一读。