如何从其实例监视类变量的更改?

我可以用setInterval()达到目标,但是代码根本变得不可读。

let calibrator = new Calibrator("hardwareName");
calibrator.connect();

let monitoring = setInterval(() => {
    if (calibrator.getState()) { // calibrator.getState() will become true when there's response from hardware.
        clearInterval(monitoring);
        // lots of logic here
    } else {
        // lots of logic here
    }
}, 0);


我希望任何人只要简单地阅读代码就可以很容易地知道我正在尝试监视类变量。但是就高级逻辑而言,clearInterval()与这无关。

所以我想要一个更好的方法来做到这一点。

最佳答案

是。 Mutation Observer有一个API。你可以在这里阅读更多:

https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver

// The DOM node to observe
const target = document.getElementById("your-id");

// Callback function when changes occurs
function callback(mutationRecord, observer) {}

// Create a new instance of MutationObserver with callback in params
const observer = new MutationObserver(callback);

// Setup config
const config = {
  childList: true
};

// When everything is ready, we just observe our target
observer.observe(target, config);

07-24 17:23