すべての API エンドポイント コネクタを保持するサービスがあります。これらのエンドポイント コネクタは ngResource オブジェクトです。
get
それらのいくつかでは、またはなどのデフォルトのメソッドをオーバーライドしてquery
、たとえば追加しresponseTransformers
ます。timeout
メソッドのプロパティを設定して、あるリクエストを別のリクエストを送信する前に停止できるようにしたいのですが、すべての sget
を定義するサービスでは実行したくありません。$resource
this.collections = $resource(BackendConfig.apiUrl + 'collections/:uid/', {}, {
query: {
isArray: false,
method: 'GET',
timeout: myTimeoutPromise
},
});
しかし、実行時、これを行う直前に
Resource.collections.query().then(function () {});
コードを分析すると、params (2 番目のパラメーター) はオーバーライドできますが、actions (3 番目) はオーバーライドできないという結論に達しました。
私は可能な(まだ実装されていない)解決策を見つけました:すべてのタイムアウトを保持する新しいサービス(Interrupterとしましょう)を作成し、必要な場所にリソースサービスに注入し、そこでタイムアウトの約束を定義します。もっと便利な解決策はありますか?