macrotasks: setTimeout, setInterval, setImmediate, I/O, UI rendering
microtasks: process.nextTick, Promises, Object.observe(废弃), MutationObserver
promise/a+ 规范 https://promisesaplus.com/#notes
https://jakearchibald.com/2015/tasks-microtasks-queues-and-schedules/
https://juejin.im/entry/58d4df3b5c497d0057eb99ff
https://html.spec.whatwg.org/multipage/webappapis.html#task-queue
https://blog.bitsrc.io/microtask-and-macrotask-a-hands-on-approach-5d77050e2168
https://www.youtube.com/watch?v=8aGhZQkoFbQ
https://github.com/ccforward/cc/issues/48
https://github.com/creeperyang/blog/issues/21