我創建了一個通過$ http.get()獲取的服務。
我的服務用於呈現多個UI元素的指令。該服務是異步的。它在指令代碼中使用,如:myService.getStuff(),它返回一個自定義的承諾(從$ http.get承諾的回調中)。
但我希望我的服務在應用程序的生命週期中僅對$ http.get執行一次調用。並緩存http.get響應。
所以說我在我的html中使用指令2次。然後這就是我想要的:第一次調用它(立即返回)並通過$ http.get獲取內容。第二次被調用時,它檢測到對$ http.get的未完成調用。因此不會對$ http.get進行另一個調用,但以某種方式等待第一個調用的返回。
函數內部有一個虛假的額外'var'。它只需要作爲外部'promise'變量的賦值。 – Duncan
@Duncan thx,編輯 – hansmaad
所以設置緩存:真,不會在我的情況下工作,因爲我想避免調用$ http.get(),而不管它是否內部緩存響應。 但是,當你寫緩存時,我的服務中的承諾可能更多。這意味着我會多次返回相同的承諾,並在每次調用服務時爲其設置不同的回調函數。這很好嗎? –