我不明白为什么从服务器端获取数据时为什么要使用异步并等待
答案 0 :(得分:2)
从客户端到服务器的网络请求(可能是很长的距离,并且互联网速度很慢)可能会占用CPU时间范围。 如果不是异步的,则UI将阻塞,直到请求完成为止。
通过异步执行,UI线程可以自由地更新进度条或渲染其他内容,而框架或操作系统堆栈正忙于另一个线程来发送和接收您的代码请求。
出于相同的原因,大多数连接到操作系统的文件或其他资源的调用都是异步的,尽管并非所有调用都像对远程服务器的请求那样慢,但是通常您无法事先知道是否它的速度将足够快而不会损害您的帧频并在用户界面中造成可见的中断或颠簸。
await
仅在异步请求完成后才执行以wait
开头的语句后用于编写代码。 async
/ await
用于使异步代码看起来更像同步代码,以便于编写和推理。
答案 1 :(得分:1)
异步在可伸缩性和响应性方面有很大帮助。
使用同步请求会阻塞客户端,直到收到响应为止。随着增加并发用户,基本上每个用户都有一个线程。这会产生大量的空闲时间,并浪费了计算。一个请求按收到的顺序得到一个响应。
使用异步请求使客户端能够以任意随机执行顺序接收请求/发送响应,因为它们能够被接收/发送。这样可使您的线程更智能地工作。
这是来自Mozilla的非常简单而可靠的资源: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Synchronous_and_Asynchronous_Requests#Asynchronous_request