A value is nothing more than a simple injectable value. The value can be a string, number but also a function. Value differs from constant in that value cannot be injected into configurations, but it can be intercepted by decorators
We should use value() to register a service object or function, while we should use constant() for configuration data as you can inject constant() into config function.