700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > ES6进阶Async与Await 你不知道的同步与异步

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

时间:2018-08-28 03:18:57

相关推荐

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之后,是先直接打印出来,然后再执行异步操作的。

总结

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

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

最后,共勉哈~

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。