0
我有一個服務,使一些http調用休息api。在我的組件上,我訂閱了它。我如何更新訂閱的數據而無需重新撥打服務電話?如何更新我的訂閱數據?
我有一個服務,使一些http調用休息api。在我的組件上,我訂閱了它。我如何更新訂閱的數據而無需重新撥打服務電話?如何更新我的訂閱數據?
這個問題不是很清楚,但我想我可以推斷出足以提供一個答案。
讓我們假設你有一個可觀察到的在其上有一個OrganizationId
屬性User
對象,並希望可觀察到的與OrganizationId
相關的Organization
對象。你希望它在用戶更新時更新,對嗎?
這就是你想要使用flatMap
運營商。假設我們的organizationService
有一個byId$
方法,它接受OrganizationId
並從http.post()
方法返回可觀察值。
organization$ = user$
.flatMap(user => organizationService.byId$(user.OrganizationId));
你能想到的flatMap
類似於map
中,這將需要一個值,並把它變成另一個根據您傳遞給它的回調。不同之處在於,如果以這種方式使用正常的map
,則最終會得到可觀察值的可觀察值。 flatMap
將展開返回的observable,以便您可以觀察所需的對象。
你想更新什麼值?通常在訂閱內您將分配您的訂閱數據到本地組件變量。你可以直接更新你的本地價值。張貼一些代碼? – CharanRoot