6

jQuery を使用して Javascript API クライアントを作成しています。私のトップレベルのリクエストメソッドは次のようになります:

function request(method, uri, params, proxies) {
  var deferred = $.Deferred();
  $.ajax({
    data: method == 'GET' ? params : JSON.stringify(params),
    contentType: 'application/json',
    dataType: 'json',
    url: api.root + uri,
    type: method,
    xhrFields: {
      withCredentials: true
    }
  }).done(function(body) {
    deferred.resolveWith(this, [body.data]);
  }).fail(function(xhr) {
    deferred.rejectWith(this, [xhr]);
  });

  return deferred.promise();
},

fail返された deferredのデフォルト ハンドラーを設定するにはどうすればよいですか? つまり、deferred のfail条件に他のハンドラーが関連付けられていない場合は、デフォルトのハンドラーを呼び出します。

特定の処理を持つ部分を除いて、アプリケーションでグローバルな例外処理を行うためにこれを実行したいと考えています (そしてfail、遅延に対して独自のハンドラーを定義します)。

4

1 に答える 1