Event loop, Task, Microtasks
https://zh.javascript.info/event-loop
https://zh.javascript.info/microtask-queue
microtask & event handler
https://codesandbox.io/s/zealous-heyrovsky-g6j53
執行順序:
https://javascript.info/event-loop
- 同步
- microtask *n 到結束(microtask 會在每次主線程執行前清空(執行完)再進行下一個非同步操作)
- 非同步
- microtask -> 下一個非同步 task
- onFocus, onBlur 在手動操作時為“非同步”執行,但是用程式
.focus()
執行時,為“同步”執行(也就是說其他 task, microtask 都要等它)
Using microtasks in JavaScript with queueMicrotask()
https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API/Microtask_guide
Task queues vs microtasks (Using Promises)
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises