javascript回调函数执行哪个线程?
最近我读了一些关于javascript的aync I/O,但我对javascript在哪里执行其aync回调感到更加困惑?主线还是其他?节点和浏览器有什么不同吗?当响应返回时,会在主线程上执行异步调用处理程序 如果从webworker执行,异步调用处理程序将在webworker线程中处理 从上到下大致遵循此设置javascript回调函数执行哪个线程?,javascript,Javascript,最近我读了一些关于javascript的aync I/O,但我对javascript在哪里执行其aync回调感到更加困惑?主线还是其他?节点和浏览器有什么不同吗?当响应返回时,会在主线程上执行异步调用处理程序 如果从webworker执行,异步调用处理程序将在webworker线程中处理 从上到下大致遵循此设置 parent thread | async start | - - - - - - > IO thread |
parent thread
|
async start
|
- - - - - - > IO thread
| |
other stuff make call
| |
more stuff get response
| |
| <--queue handling
V
handle async
response
父线程
|
异步启动
|
-->IO线程
| |
其他东西打电话
| |
更多的东西得到回应
| |
|回调在主线程中执行,但异步操作在其自己的线程中执行,具体取决于操作。事件和计时器队列在主线程中更新,但例如AJAX调用有自己的线程。这也可能因实现的不同而有所不同。