In javascript, how to trigger event when a variable's value is changed?
javascript
Solution
There is no event which is raised when a given value is changed in Javascript. What you can do is provide a set of functions that wrap the specific values and generate events when they are called to modify the values.
function Create(callback) {
var isGreen = false;
var isRunning = false;
return {
getIsGreen : function() { return isGreen; },
setIsGreen : function(p) { isGreen = p; callback(isGreen, isRunning); },
getIsRunning : function() { return isRunning; },
setIsRunning : function(p) { isRunning = p; callback(isGreen, isRunning); }
};
}
Now you could call this function and link the callback to execute go():
var traffic = Create(function(isGreen, isRunning) {
if (isGreen && !isRunning) {
go();
}
});
traffic.setIsGreen(true);
Problem
I have two variables: ``` var trafficLightIsGreen = false; var someoneIsRunningTheLight = false; ``` I would like to trigger an event when the two variables agree with my conditions: ``` if(trafficLightIsGreen && !someoneIsRunningTheLight){ go(); } ``` Assuming that those two booleans can change in any moment, how can I trigger my `go()` method when they change according to the my conditions?