我正在尝试在我的应用程序中创建一个功能,当其中一个状态发生变化时,应该更新我的色调灯的状态。
目前,我已经这样做了:
async.waterfall([
function getLightsId(callback) {
args = {
path: {
"username": "webjeremie"
}
};
client.registerMethod("getLightState", "http://hue.jeremieledieu.fr/api/${username}/lights/", "GET");
client.methods.getLightState(args, function (data, response) {
var ids = [];
for (key in data) {
ids.push(key);
}
callback(null, ids);
});
},
function getLightsState(ids, callback) {
var lightsState = new Object();
async.reduce(ids, {}, function(lightsState, id, rcallback) {
getLightState(id, function(state) {
lightsState[id] = state;
rcallback(null, lightsState);
});
}, callback);
},
], function (err, currentState) {
io.sockets.on('connection', function (socket) {
socket.emit('updateLightsState', currentState);
previousState = currentState;
});
});
这让我了解了currenState
中所有灯的状态,但我仍然坚持如何不断地将先前状态与当前状态进行比较,并且仅在currentState!= previousState
有什么想法吗?
答案 0 :(得分:0)
我可以给你一个建议。
将值设置为变量。
var origVal = "Original";
var yourVariable = "Original";
setInterval(function(){
if(yourVariable !== origVal){
// do something.
}
},1000)
答案 1 :(得分:0)
我认为,object.watch会在这里开展工作。