Как я могу обновить данные моей подписки?

У меня есть служба, которая делает http-вызов API для отдыха. На моем компоненте у меня есть подписка на него. Как я могу обновить данные о подписке, не совершая новый звонок в сервис?

1 ответ

Решение

Вопрос не совсем понятен, но я думаю, что могу сделать достаточно вывод, чтобы, надеюсь, дать ответ.

Давайте предположим, что у вас есть наблюдаемая User объект, который имеет OrganizationId собственности на него, и вы хотите, чтобы можно было наблюдать Organization объект, связанный с этим OrganizationId, Вы хотите, чтобы он обновлялся, когда пользователь обновляется, верно?

Это то, что вы хотели бы использовать flatMap оператор для. Предположим, наш organizationService имеет byId$ метод, который принимает в OrganizationId и возвращает наблюдаемое из http.post() метод.

organization$ = user$
    .flatMap(user => organizationService.byId$(user.OrganizationId));

Вы можете думать о flatMap как похоже на map в том, что он примет одно значение и превратит его в другое на основе обратного вызова, который вы передаете ему. Разница в том, что если вы использовали нормальный map таким образом, вы в конечном итоге получили бы наблюдаемое от наблюдаемого. flatMap развернет наблюдаемое, которое возвращается к нему, так что у вас будет просто наблюдаемое желаемого объекта.

Другие вопросы по тегам