2017-02-24 8 views
-1

は、あなたがそうのように、初期のhttp.get要求に工場を持っていることを想像し?保存http.get respone

私が知りたいのは、コントローラーの前にサービスが初期化されていることを前提としているため、コントローラーに約束を送ると、変数を保存するコールバックが発生し、余分な呼び出しが必要になります。

+0

:ちょうど約束を要求をトリガし、保存しますか? –

+0

2台のコントローラ間で応答データを共有したい。 – JustinCredible

答えて

1

私が知っている限り(そしてドキュメントを参照)、工場を非同期で初期化する方法はありません。したがって、実際にgetSomeArray()への外部呼び出しによって応答がローカル変数に保存されることは保証されません。

あなたは間違いなく、このための約束を使用する必要があります:あなたは、サービス変数に応答データを保存する必要があるのはなぜ

app.factory('myService', function ($http) { 

    var responsePromise = $http.get('someUrl').then(function (response) { 
     return response.data; 
    } 

    return { 
     getSomeArray: getSomeArray 
    } 


    function getSomeArray() { 
     return responsePromise; 
    } 
} 

myService.getSomeArray().then(function (someArray) { 
    // ... 
});