Effects respond to tracked signal reads and fit external synchronization. Derived application state usually belongs in computed values instead.
Before you start
You should understand a component’s class, template and dependencies. Follow both the framework lifecycle and the ownership of each value or resource. Apply examples inside an Angular application; the surrounding application configuration and imports depend on the feature being demonstrated.
The practical goal is to reason through this situation: An Effect sends a current preference to an external storage adapter. Read the walkthrough first, then try the interview exercise before opening its answer. The important part is explaining the decision and its consequences, rather than remembering a definition alone.
Step-by-step walkthrough
Step 1: Separate calculation from side effects
A price derived from quantity is computed data. Saving a preference to external storage is synchronization.
Step 2: Track intended inputs
Read only the preference that the Effect must synchronize. Unrelated reads can broaden its dependency set.
Step 3: Assign resource ownership
If the Effect starts subscriptions or asynchronous work, define cleanup and obsolete-result handling rather than assuming reevaluation stops that work.
Worked scenario
An Effect sends a current preference to an external storage adapter.
A computed price multiplies quantity and unit price. A separate Effect reads the selected currency and writes that preference through a storage adapter. Writing a new currency from the same Effect can create a feedback relationship; keep authoritative input changes in the user action or state owner instead.
Common mistake
Writing interconnected signals from Effects can create cycles and hard-to-follow scheduling.
Verify the behavior
Change quantity and currency separately. Verify the price changes without storage writes unless the synchronized preference itself changed.
Interview exercise
Where should a computed price live?
Answer and reasoning
In computed, while storage synchronization remains an Effect with explicit cleanup and ownership.
Continue learning
Compare the scenario with the Angular interview questions and test your understanding with the Angular MCQs. For terminology and implementation details, consult the reference material.