gpt4 book ai didi

javascript - 如何连续调用一个函数

转载 作者:行者123 更新时间:2023-11-30 15:13:39 24 4
gpt4 key购买 nike

我希望能够连续运行这段代码,以便我调用的函数始终检查输入的是真还是假

索引.js

io.on('connection', function(socket) {
var entered = require('./main.js').onProximityBoolean; /// i want this to continuously be checking itself
if (entered == true) {
socket.emit('enterProximity');
}
}

主要.js

var enter = false;
function onProximityBoolean(enter) {
if (enter === true) {
console.log(enter);
return true;
} else {
return false;
}
}

function isWithinBounds() {
//inside here is sensor code that says if the object comes close
//then enter will be true else enter will be false
//this part accurately redefines the onProximityBoolean
}
module.exports = {
onProximityBoolean: onProximityBoolean(enter)
};

最佳答案

你可能想用 setter/getter 实现一个观察者:

"main.js";
var state=false;
var handlers=[];
module.exports={
get proximityBoolean(){
return state;
},
set proximityBoolean(value){
if(value!==state){
state=value;
handlers.forEach(func=>func(value));
},
observe(func){
handlers.push(func);
}
}

所以你可以这样做:

var main = require('./main.js');
io.on('connection', function(socket) {
main.observe(function(entered){
if (entered == true) {
socket.emit('enterProximity');
}
});
}

//trigger it somewhen
main.proximityBoolean=true;

或者使用 setInterval 定期检查:

var main=require('./main.js');
io.on('connection', function(socket){
setInterval(function() {
var entered = main.onProximityBoolean;
if (entered == true) {
socket.emit('enterProximity');
}
},1000);
});

关于javascript - 如何连续调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44783460/

24 4 0
文章推荐: c# - 如何序列化 List 同时转义特殊字符?
文章推荐: c - c中的回文数检查