异步与async/await

async/await是ES7引入的特性,用于简化异步编程,让代码看起来更同步。它基于Promise工作,通过await关键字暂停执行直到异步操作完成。错误处理可以通过try/catch进行,与Promise的reject处理方式一致。结合axios使用,能更好地处理HTTP请求。总的来说,async/await提高了代码的可读性和可维护性。
摘要由CSDN通过智能技术生成

1.async/await

async/await 是一个组合就像是if/else,这个组合是在ES7标准下实现的原生东西,主要功能就是可以将异步操作变成看起来像的同步操作,这听起来很无聊,但是异步操作有其复杂性,各种回调函数叫人头大,使用async/await就简洁明了许多,只需要加标识符“await“就可以将后续内容做为异步操作的回调函数,不加await就不影响后续代码的执行,还可以直接 return 数据,可以说的异步操作的“完美”解决方案了。

这个看似完美的解决方案,其实只是Generator的语法糖,但是Generator使用起来比较麻烦,充满了* next与yield,完全没有显示出优势,实际只写写业务的话用处也不算特别多,而且我认为Promise效果更好,可读性也更强,维护起来也更加容易。上一段Generator的代码,在我理解起来这种方式比Promise的优越性只是体现在其没有then,但是比Promise更加难以理解,next可以启动执行还可以返回数据:

function getData() {
    setTimeout(() => {
        let reponse = { name: '小明' };
        //这种返回方式我认为挺不合理的
        f.next(reponse);
    }, 2000);
}
function* fun() {
    let data = yield getData();
    console.log(data);
}
let f = fun
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值