If we don't need to wait, execute the callback, otherwise register it to an event that will fire once the necessary result is computed and ready.
| callback | Function | Function to execute when the result is done being computed callback should have the following signature: function(result). |