ES6进阶Async与Await,你不知道的同步与异步

每日骚话

这次我们来说一下同步和异步哈,这个Async和Await都是解决异步时候返回顺序不一致的问题的。
简单来说,Async与Await是对Promise的优化,让Promise看起来更美观一些。
话说,我用习惯了Promise,刚学Async和Await那会有点懵逼,今儿恍然大悟,就来CSDN水一下哈,顺便供大家参考。


说明

这里有必要说一下哈,Async和Await还有Promise是在ES6里边的,所以得运行在node里边。
另外,Async和Await一般情况下同时出现,光用一个貌似没效果?甚至会报错……
关于ES6的更多知识,可以去一峰老师的网站看看哈。

Async

返回的是Promise对象
一般为:async myFun( ){ await new Primise(resolve=>{ }) }

Await

a(async) wait = await
得在Async函数里面使用,不然会报错。
await 相当于卡了个点,告诉async函数,这个点执行完了才能继续执行下面的功能。


例子

下面的例子写了一个异步操作,一个直接操作来说明async、await的同步作用

代码
  created() {
    this.shunxu();
  },
  methods: {
    async shunxu() {
      await new Promise((res) => {
        setTimeout(() => {
          res();
        }, 1000);
      }).then(() => {
        console.log("我的异步操作,一秒后执行");
      });
      console.log("我是直接打印的");
    },
  }
效果

在这里插入图片描述

可以看见是先等待异步操作执行完了之后,再去执行下面的操作的,这就解决了异步操作时,执行顺序不按编码顺序的问题。

没有await的情况

我们把上面的代码中,new Promise 前面的 await 去掉就行了。

在这里插入图片描述

可以看见,去掉await之后,是先直接打印出来,然后再执行异步操作的。

总结

  1. 一般async与await同步出现
  2. async返回promise对象
  3. await出现在async函数内部,单独只用会报错

好哒,那我这次的分享就到这里啦,写的比较简单,苦逼的社畜难得抽出时间来写东西,留下了后悔的泪水……

最后,共勉哈~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值