It is flawed logic to not run _asyncValidators if the control is valid. If the control only has one validator and it is async, and the async validator has run and put the control in an invalid state, then changing the control value won't re-run the async validator and it will forever remain invalid.
It is flawed logic to not run _asyncValidators if the control is valid. If the control only has one validator and it is async, and the async validator has run and put the control in an invalid state, then changing the control value won't re-run the async validator and it will forever remain invalid.