javascript - 有比使用 setInterval() 检测 JavaScript 中的类变量更改更好的方法吗?
问题描述
如何从其实例监视类变量的更改?
我可以实现目标,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()
就高级逻辑而言,与此无关。
所以我想要一个更好的方法来做到这一点。
解决方案
是的。有一个 API 用于Mutation Observer
. 你可以在这里阅读更多:
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);
推荐阅读
- django - Django重定向在使用反向时将元组附加到URL
- typescript - TypeScript:意外行为的关键
- android - Capacitor Plugin开发如何重新安装以调试/测试更改
- c# - 控制器中的 Asp.Net MVC 5 ModelState 具有索引、添加、编辑
- autodesk-forge - 在长链接上正确使用 addProperty()
- php - 无法使用 curl 在 cron 作业中包含 wp-load.php
- javascript - 如何一次定位多个数据属性
- python-3.x - 如何更新 Pyspark 中的嵌套字段值
- javascript - 在正则表达式中添加多个条件
- python - `Ctrl` + `Alt` + `L` 无法修复警告 PEP 8:E122 续行缺少缩进或缩进