I have an Angular app. I have a service, which has an initialization logic - a backend call to fetch some data. Once the backend call is processed, I resolve a promise, indicating the service is ready to be called. I keep the promise exposed for the whole life of the service/app. Any newly created component using that service checks if the service was initialized (and executes its own init logic), via adding a handler - calling then() on the promise. I can guarantee that only a few handlers are added before the promise is resolved, vast majority of handlers are added after (during the whole life of the app). Obviously, the promise itself will never be garbage collected. Are the handlers added to the promise cleared (garbage collected) once they are executed? Or will they keep stacking until I run out of memory? Continue reading...