-
キャンセルトークンを使用する方法: Angularの$httpメソッドは、キャンセルトークンをサポートしています。キャンセルトークンを作成し、リクエストに関連付けることで、必要な場合にリクエストを中止することができます。
// キャンセルトークンの作成 var canceler = $q.defer(); // リクエストの送信 $http({ method: 'GET', url: '/api/data', timeout: canceler.promise }).then(function(response) { // 成功時の処理 }).catch(function(error) { // エラー時の処理 }); // リクエストの中止 canceler.resolve();
上記の例では、$q.defer()を使用してキャンセルトークンを作成し、
timeout
プロパティにそのプロミスを指定しています。そして、canceler.resolve()
を呼び出すことでリクエストを中止します。 -
Interceptorを使用する方法: AngularのInterceptorを使用すると、リクエストやレスポンスを処理する前後にフックを追加することができます。これを利用して、リクエストを中止することもできます。
// Interceptorの登録 angular.module('myApp').factory('requestInterceptor', ['$q', function($q) { return { request: function(config) { // リクエストを中止する条件をチェック if (shouldCancelRequest) { return $q.reject('Request canceled'); } return config; } }; }]); // Interceptorの適用 angular.module('myApp').config(['$httpProvider', function($httpProvider) { $httpProvider.interceptors.push('requestInterceptor'); }]);
上記の例では、
requestInterceptor
という名前のInterceptorを定義し、request
関数内でリクエストを中止する条件をチェックしています。条件に合致する場合、$q.reject()
を使用してリクエストを中止します。
これらはAngularの$httpサービスを使用してリクエストを中止するための一般的な方法です。適切な方法を選択し、必要に応じてエラーハンドリングを行ってください。