Javascript Node.JS async:检查变量是否已更改
我尝试比较variable.value两次,异步函数中有一个延迟。 我尝试过setTimeout,这是更多用户创建的等待和延迟函数,但看起来它不起作用 假设我有一台由debian/nodejs支持的灌装机,带有串行连接的秤,其值需要来自另一个js文件: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秒后再次与它进
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
的完整脚本?我认为根据要求,代码编辑代码中存在竞争条件。