JS异步同步

186 阅读1分钟

同步

当函数A返回的时候,他的调用者可以拿到预期的结果。这就是同步。

异步

当函数A返回时,他的调用者拿不到预期的结果,必须通过一定的手段才可以拿到,那这个函数就是异步的。

异步的过程是怎样的?

当需要有异步的操作时,主线程需要给异步的任务发个消息,异步任务收到后返回收到的消息。开始执行异步任务,异步任务结束后给主线程发个消息,主线程收到后执行回调函数。

消息队列和事件循环

在异步过程中,如果异步任务结束时会通知主线程,通知机制是怎样的呢?
一句话,异步任务完成后将消息放在消息队列,主线程通过事件循环去取得消息。
主线程只会做一件时间,去消息队列读取消息然后再去执行消息。

segmentfault.com/a/119000000…