いくつかのコードを設定しました。ajaxリクエスト用の非常にシンプルなAPIを取得したいと思います。
ですから、私がやりたいのは、成功を返すためになんとかして延期されたものを使用することです。
var factory = function(dataParams) {
return $.ajax({
type : "POST",
dataType : "json",
url : "http://example.com/whatever",
data : dataParams,
beforeSend : function(jqXHR, settings){/*... something here ...*/},
error : function(jqXHR, textStatus, errorThrown){/*... something here ...*/},
complete : function(jqXHR, textStatus) {/*... something here ...*/}
});
これは、次のようなものによって呼び出されます
var dataTools = {
"foo" : function(){
factory({"One": 1}).success(function(jqXHR){
//Do something to jqXHR
//Return something to the "upper most" calling... how?
})
}
"bar" : function(){
factory({"Two": 2}).success(function(jqXHR){
//Return jqXHR to the "upper most" calling... how?
})
}
};
私がこのようにそれを使うことができるように:
$.each(dataTools.foo(), function(k,v){
console.log(v);
});
基本的に、オブジェクトdataTools.foo
は成功から値を返すか、失敗のベントで空のセットを返すか、そのコード分岐をスキップするものを返す必要があります。
を使用して$.when().then()
みましたが、ここで説明したようなものにどのように適合させるかがわかりません。