Why destroy UObject call ConditionalBeginDestroy

hey guys,
When I destroy UObject, I first call the function ConditionalBeginDestroy and then set to nullptr,but the things really confuse me that what is the ConditionalBeginDestroy function doing for,without call it ,the object can be gc propertly!!!
sorry for my English…