Государственная документация NGXS - PullRequest
0 голосов
/ 31 октября 2018

Я новичок в NGXS и пытаюсь полностью понять документы, чтобы я мог начать использовать его, зная, что я делаю.

Есть одна вещь, которую я не понимаю в этом фрагменте кода из здесь .

export class ZooState {
  constructor(private animalService: AnimalService) {}

  @Action(FeedAnimals)
  feedAnimals(ctx: StateContext<ZooStateModel>, action: FeedAnimals) {
    return this.animalService.feed(action.animalsToFeed).pipe(tap((animalsToFeedResult) => {
      const state = ctx.getState();
      ctx.setState({
        ...state,
        feedAnimals: [
          ...state.feedAnimals,
          animalsToFeedResult,
        ]
      });
    }));
  }
}

Чуть ниже этого кода написано:

Вы можете заметить, что я вернул Наблюдаемую и просто нажал. Если мы вернуть Observable, фреймворк автоматически подпишется на это для нас , так что нам не нужно заниматься этим самим. Дополнительно, если мы хотим, чтобы функция отправки магазина могла завершиться только как только операция завершена, мы должны вернуть это, чтобы он знал что.

Фреймворк подпишется на this.animalService.feed, но почему?

1 Ответ

0 голосов
/ 31 октября 2018

Действие FeedAnimals использует внедренный сервис AnimalService для кормления животных, переданных в полезной нагрузке действия. Предположительно служба работает асинхронно и возвращает Observable. Доступ к значению этого Observable осуществляется через функцию касания и используется для обновления контекста состояния ZooState на основании успешного завершения.

Для того, чтобы использовать NGXS конкретно и Angular в целом, вы действительно должны понимать RxJS ... вот моя страница документации для него

...