Prevent multiple callback calls for chain() and provide()