async/await的使用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了async/await的使用相关的知识,希望对你有一定的参考价值。

参考技术A

其实你要实现一个东西之前,最好是先搞清楚这两样东西

async/await 的用处就是: 用同步方式,执行异步操作 ,怎么说呢?举个例子

比如我现在有一个需求:先请求完 接口1 ,再去请求 接口2 ,我们通常会这么做

或者我现在又有一个需求:先请求完 接口1 ,再拿 接口1 返回的数据,去当做 接口2 的请求参数,那我们也可以这么做

其实这么做是没问题的,但是如果嵌套的多了,不免有点不雅观,这个时候就可以用 async/await 来解决了

还是用刚刚的例子

需求一:

需求二:

其实就类似于生活中的 排队 ,咱们生活中排队买东西,肯定是要上一个人买完,才轮到下一个人。而上面也一样,在 async 函数中, await 规定了异步操作只能一个一个排队执行,从而达到 用同步方式,执行异步操作 的效果,这里注意了: await只能在async函数中使用,不然会报错哦

刚刚上面的例子 await 后面都是跟着异步操作 Promise ,那如果不接 Promise 会怎么样呢?

可以看出,如果 await 后面接的不是 Promise 的话,其实是达不到 排队 的效果的

说完 await ,咱们聊聊 async 吧, async 是一个位于function之前的前缀,只有 async函数 中,才能使用 await 。那 async 执行完是返回一个什么东西呢?

可以看出, async函数 执行完会自动返回一个状态为 fulfilled 的Promise,也就是成功状态,但是值却是undefined,那要怎么才能使值不是undefined呢?很简单,函数有 return 返回值就行了

可以看出,此时就有值了,并且还能使用 then方法 进行输出

总结一下 async/await 的知识点

以上是关于async/await的使用的主要内容,如果未能解决你的问题,请参考以下文章

swift 异步 async/await 的使用

async/await的使用

Python使用async/await极简例子

如何正确理解.NET 4.5和C#5.0中的async/await异步编程模式

Js<async/await的使用>

如何在.net4.0中使用.net4.5的async/await实现异步