Javascript Node.JS async:检查变量是否已更改

Javascript Node.JS async:检查变量是否已更改,javascript,node.js,asynchronous,compare,settimeout,Javascript,Node.js,Asynchronous,Compare,Settimeout,我尝试比较variable.value两次,异步函数中有一个延迟。 我尝试过setTimeout,这是更多用户创建的等待和延迟函数,但看起来它不起作用 假设我有一台由debian/nodejs支持的灌装机,带有串行连接的秤,其值需要来自另一个js文件: const scale=require(“./scale”) 串行连接在scale.js中是实时的,它返回一个浮点值,并且每毫秒更新一次。 监控scale.value工作正常,它会相应地更改其实际值。 然而,当我尝试检查它的值并在3秒后再次与它进

我尝试比较variable.value两次,异步函数中有一个延迟。 我尝试过setTimeout,这是更多用户创建的等待和延迟函数,但看起来它不起作用

假设我有一台由debian/nodejs支持的灌装机,带有串行连接的秤,其值需要来自另一个js文件:
const scale=require(“./scale”)
串行连接在scale.js中是实时的,它返回一个浮点值,并且每毫秒更新一次。
监控
scale.value
工作正常,它会相应地更改其实际值。 然而,当我尝试检查它的值并在3秒后再次与它进行比较时,它看起来保持不变。此比较在异步函数中进行,该函数每100毫秒由
setInterval
调用一次

const scale = require("./scale");
value1 = -1, value2 = -2;
filling= true, failsafe = false;
//other things
setInterval(catchbutton, 100);

async function catchbutton(){

//SCALE FAILSAFE
if (filling) {
  value1 = scale.value;
   setTimeout(function () {
     value2 = scale.value;
     if (value1 == value2) {
      failsafe = true;
      }
    }, 3000);
 }
}

基本上,3秒钟后,我每次都会得到一个故障保护,不管
的scale.value是多少。
有什么想法吗?

(抱歉出错,几周后才启动JS)。

这是否意味着
缩放。值
每1ms更改一次?console.log(value1,value2)怎么样?我想知道value1,value2,failsafe的初始化代码。您是否也可以添加一个带有
setInteval
的完整脚本?我认为代码编辑代码中存在争用条件。这是否意味着
scale.value
每1ms更改一次?console.log(value1,value2)怎么样?我想知道value1,value2,failsafe的初始化代码。您是否也可以添加一个带有
setInteval
的完整脚本?我认为根据要求,代码编辑代码中存在竞争条件。