Question: I am dispatching data from one component to use in other components.
When i am dispatching subscribe is calling multiple times.

On click of button i am dispatching 

```
appStore.dispatch(new SetSearch(value));

```

I am listing in other component 

```
appStore.select<ISearch>(AppState.Search)
    .pipe(
      takeUntil(this.unsubscribe$), skip(1)
    )
      .subscribe(SearchState => {
        if (SearchState.account !== '') 

```

calling one for method here to save.In that method i am dispatching to save that value,on subscribe i am calling other method to load data and dispatching.

Answer: 
Your nested subscriptions must be creating a cycle execution due to changes in state that are introduced, perhaps repeated, and then the cycle ends due to no changes in value. If you are dispatching additional actions inside of that subscription, those actions might affect the state of the appStore and therefore retrigger the current subscription to execute once more. In this case, then you'll observe multiple subscriptions until your store is no longer reacting to additional changes to state. The type of operation occuring in the reducer determines how long this cycle can last. If you are setting a field and changing it's value, then you might see two dispatches, as the appStore changes from an initial value to a new value, and due to a dispatch nested in a subscription, you are seeing multiple subscription events. If you are using some other form of mutation on the reducer during dispatches you may have longer cycles of execution. The way to mitigate this is to compare your state and do not fire additional dispatches if your state is already in the right format. This is something you can add another conditional control structure as a remedy.

Also as an addendum, if you have effects that are reacting to the dispatch then that can also trigger additional subscription events, thus leading to further cycles of execution inside of your subscription. Especially if you use the traditional subscription execution dispatches REQUEST -> effect dispatches {SUCCESS | ERROR} actions that also modify your state, such as a loading field, or an error flag.
Read this issue
<https://github.com/ngxs/store/issues/477>

and see the example from here <https://stackblitz.com/edit/angular-gxh1sr>