私は3つのサービスを持っています。返金遅延。プロミス2サービス
HttpSender - それは、$ HTTPリクエスト
app.service("HttpSender", ["$http", "$q", function ($http, $q) { this.send = function (path, method, params) { var deferred = $q.defer(); $http({ url: path, method: method, params: params }).then(function successCallback(response) { deferred.resolve(response.data); }, function errorCallback(response) { deferred.reject(response); }); return deferred.promise; }; this.sendRequestWithFile = function (path, method, params) { //todo check if needed }; }]);
APIを制御 - エンドポイントのAPIリクエスト
を活性化させる - すべてのAPI /アクセストークンがservice("API", ["HttpSender", "$q", 'WindowOpen', function(HttpSender, $q, WindowOpen){ var self = this; var API = {}; API.requestTypes = { GetMethod: "GET", PostMethod: "POST", DeleteMethod: "DELETE", PutMethod: "PUT" }; API.sendRequest = function (path, method, parameters, isCheckAccessToken) { path = ServersConfig.getApiServerUrl() + path; parameters.access_token = getAccessToken(); HttpSender.send(path, method, parameters); }; return API; }]);
APIを処理制御
app.factory('SelectedEndpoint', ['API', function (API) { var getPath = function (campaign) { return "/campaigns/" + campaign.id + '/content/selected'; }; return { get: function (campaign) { API.sendRequest(getPath(campaign), API.requestTypes.GetMethod, {}, true).then(function (content) { }); } }; }]);
deferred.promiseをエンドポイント関数に戻すと、答えが返ってくるはずです。次のプロセスは、私がapiファクトリにエンドポイントに返す場合にのみ機能します。
これを使用する方法の例を追加できますか? –
コントローラにまっすぐ戻したいです。私は質問のプロセスを最小限に抑えます。返されるデータを呼び出し側に戻すのではなく、以前の呼び出し元に戻したい場合 –