If you know inputs to your function have changed (you've detected this condition via a listener), you should call refresh() method on the FunctionResult object. It's protected method as you are expected to do listening/refreshing from within your FunctionResult implementation.