$ http.get()で取得するサービスを作成しました。
私のサービスは、いくつかのUI要素をレンダリングする指示文で使用されます。サービスは非同期です。これは、myService.getStuff()のような指示コードで使用され、$ http.get promiseのコールバック内からカスタマイズされた約束を返します。
しかし、私のサービスでは、アプリケーションのライフサイクル中に$ http.getを1回呼び出すだけです。 http.getレスポンスをキャッシュします。
だから、私は自分のhtmlでこのディレクティブを2回使います。それで、これは私が望むものです。最初にそれを呼び出すと(すぐに戻り、)$ http.get経由でものを取り出します。 2回目に呼び出されると、$ http.getへの未処理呼び出しが検出されます。したがって$ http.getへの別の呼び出しは行いませんが、何とか最初の呼び出しの戻りを待っています。
あなたは関数内に余分な 'var'を持っています。それは外部の 'promise'変数への代入である必要があります。 – Duncan
@Duncan thx、 – hansmaad
を編集してキャッシュをtrueに設定すると、内部的に応答をキャッシュするかどうかにかかわらず、私が避けたいのは$ http.get()を呼び出しているので、私の場合は機能しません。 しかし、あなたがキャッシングを書いているときには、私のサービスの約束はもっと線に沿っているかもしれません。これは、私が同じ約束を何度も返すことを意味し、サービスが呼び出されるたびに異なるコールバック関数を設定します。いいですか? –