Как я могу обновить данные моей подписки?
У меня есть служба, которая делает 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
развернет наблюдаемое, которое возвращается к нему, так что у вас будет просто наблюдаемое желаемого объекта.