JavaScript的MutationObserver
的语义有些奇怪:
它不会记录所有更改,而是记录所有更改并在事件循环中安排一个回调调用(即,您在回调调用期间看不到堆栈跟踪中的更改代码)。
在很多情况下肯定很方便,但是我该如何区分第三方代码对DOM所做的更改与我自己所做的更改?
如果回调被内联调用,则可以这样做:
inModification = true
<do some changes>
inModification = false
显然这现在不起作用,因为没有在分配之间调用回调。所以我必须这样写:
setTimeout(() => inModification = false)
<do some changes>
inModification = true
但是
这是我能做的最好的吗?