Is true if the after method finished executing. Note the after method should
never throw any errors, but if it does the error will be swallowed and ignored.
Is false if it has not yet finished executing.
Returns true only if the action has completed (the 'after' method already ran), but either
the 'before' or the 'reduce' methods have thrown an error. If this is true, it indicates that
the reducer could NOT complete, and could not return a value to change the state.
Returns true only if the action has completed, and none of the 'before' or 'reduce'
methods have thrown an error. This indicates that the 'reduce' method completed and
returned a result (even if the result was null). The 'after' method also already ran.
Returns true if the action was already dispatched. An action cannot be dispatched
more than once, which means that you have to create a new action each time.
Holds the error thrown by the action's before/reduce methods, if any.
This may or may not be equal to the error thrown by the action, because the original error
will still be processed by the action's wrapError and the globalWrapError. However,
if originalError is non-null, it means the reducer did not finish running.
Holds the error thrown by the action. This may or may not be the same as originalError,
because any errors thrown by the action's before/reduce methods may still be changed or
cancelled by the action's wrapError and the globalWrapError. This is the final error
after all these wraps.