🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
首先,不同于其他后端语言,javascript语言是单线程机制。所谓单线程就是按次序执行,执行完一个任务再执行下一个。 对于浏览器来说,也就是无法在渲染页面的同时执行代码。 `同步`是指一个线程要等待上一个线程执行完才能开始执行,同步可以看做是一个单线程操作,只要客户端请求了,在服务器没有反馈信息之前是一个线程阻塞状态。 `异步`是一个线程在执行中,下一个线程不必等待它执行完就可以开始执行。异步肯定是个多线程。在客户端请求时,可以执行其他线程,并且在把这个线程存放在他的队列里面,有序的执行。 `异步的效率要高于同步`。如果数据在线程间共享,那么必须使用同步! > **异步模式的四种方式:** > ① 回调函数callback > ② 事件驱动 Event-Driven > ③ 观察者模式Observer pattern(又称发布订阅模式publish-subscribe pattern) > ④ promise模式