Im работает над кодом датчика, и когда объект имеет определенные границы, он должен испускать ("enterProximity"), поэтому, когда этот код запускается
main.js
var entered = require('./main').onProximityBoolean
io.on('connection', function(socket) {
setInterval(function() {
console.log("entered index " + entered);
var here = entered.onProximityBoolean;
if (here == true) {
socket.emit('enterProximity');
}
},1000);
}
В этом коде "здесь" должно быть равно true, когда "enter" имеет значение true в main.js
enter = false
function onProximityBoolean(enter) {
console.log(enter + " emit entered");
return enter;
}
module.exports = {
withinBounds: withinBounds,
onProximityBoolean: onProximityBoolean(enter)
};
но вместо этого он печатает как это
как я могу здесь переназначить себя непрерывно?
Ваш module.exports возвращает значение onProximityBoolean (undefined), а не сама функция.
Если вы измените свой module.exports на этот
module.exports = {
withinBounds: withinBounds,
onProximityBoolean: onProximityBoolean,
};
а затем ваш бегун к этому:
var entered = require('./main').onProximityBoolean
io.on('connection', function(socket) {
setInterval(function() {
console.log("entered index " + entered);
var here = entered.onProximityBoolean(entered);
if (here == true) {
socket.emit('enterProximity');
}
},1000);
}
это исправить вашу проблему? Изменение состоит в том, чтобы убедиться, что onProximityBoolean является функцией и вы вызываете функцию каждый раз в вашем цикле setInterval.
onProximityBoolean
в module.exports сenter
, который из кода помещенundefined
. Который присваивает ключonProximityBoolean
со значением false, и он никогда не меняется.