变量状态发生变化时执行某些功能?

时间:2014-04-05 13:29:58

标签: javascript node.js

我正在尝试在我的应用程序中创建一个功能,当其中一个状态发生变化时,应该更新我的色调灯的状态。

目前,我已经这样做了:

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

时发出

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

我可以给你一个建议。

将值设置为变量。

var origVal = "Original";
var yourVariable = "Original";

setInterval(function(){
   if(yourVariable !== origVal){
     // do something.
   }
},1000)

答案 1 :(得分:0)

查看answer #1180790

我认为,object.watch会在这里开展工作。