We learned earlier that
formatResult can be used to wrap a validator and augment or transform its validation result. This is true for async validation results as well--
formatResult handles both synchronous and asynchronous results.
By simply wrapping a validator with
formatResult, the result formatter function will be called for both the synchronous and the asynchronous results. The two-stage sync/async validation results can be differentiated from one another if needed. If the result contains a
validateAsync result prop (that is a function), then the result represents the first stage, synchronous validation result. If the result does not contain a
validateAsync result prop, then all asynchronous validation has been completed.