背景:JS
是一门单线程的编程语言,这就意味着一个时间里只能处理一件事,也就是说 JS
引擎一次只能在一个线程里处理一条语句。(浏览器和 nodejs
已经支持 js
启动进程,如 web worker
)
虽然单线程简化了编程代码,因为这样咱们不必太担心并发引出的问题,这也意味着必须在阻塞主线程的情况下执行长时间的操作,如网络请求。
想象一下从 API
请求一些数据,根据具体的情况,服务器需要一些时间来处理请求,同时阻塞主线程,使网页长时间处于无响应的状态。这就是引入异步 JS
的原因。使用异步 (如 回调函数、promise
、async/await
),可以不用阻塞主线程的情况下长时间执行网络请求。
总结:基于 js
单线程本质,同步会阻塞代码执行,异步不会阻塞代码执行。
本文作者:叶继伟
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!