Runs action on the carried value if this is a DataResult.Success, and returns this result either way.