2017-06-25 17 views
0

現在、$.getJSON()と苦労しており、結果として.fail()の機能があります。私もからそのデータを取得するために、後で$.when()を使用していて、私は別の変数を使用することはできませんfail関数の変数値を変更する

次のような - $.getJSON()が失敗したとき、それは他の何かに変数の値を変更するように私はそれを取得しようとしていますマンゴーJSON

これが可能かどうか、誰にどのようにすればいいのですか?どんな助けでも大変感謝しています。

var mangoes = $.getJSON("mangoesurl.com/json").fail(mangoes="{value:0}"); 
var mangoes2 = $.getJSON("mangoesurl.com/json2").fail(mangoes="{value:0}"); 
$.when(mangoes, mangoes2).then(data1, data2){ 

} 
+0

方法について'return {value:0}'? – moped

+0

しかし、JSONを "マンゴー"に保存したいのですが、そうですか? –

+0

@TonySamperiはい私は –

答えて

2

私が正しく理解していれば、これは何が必要です。このように

var mangoes = $.getJSON("mangoesurl.com/json").fail(function(){ 
    return {value:0}; 
}); 

マンゴーは、応答の後に空になっています。基本的にこのコードはJSONを取得しますが、JSONは何もしません。 は、あなたがこれを必要とマンゴーにJSONの結果を配置するには:あなたはマンゴーにコンテンツを割り当てることはできませんsintaxときで

var mangoes = $.getJSON("mangoesurl.com/json") 
.success(function(response){ 
    return response; 
}); 
.fail(function(){ 
    return {value:0}; 
}); 

...あなたは、ロジックに変更する必要が

var mangoes, mangoes2; 
var deferred1 = $.getJSON("mangoesurl.com/json"); 
var deferred2 = $.getJSON("mangoesurl.com/json2"); 
$.when(deferred1, deferred2).then(function(data1, data2){ 
    mangoes = data1; 
    mangoes2 = data2; 
}, function(error){ 
    mangoes || mangoes = {value:0}; 
    mangoes2 || mangoes2 = {value:0}; 
}); 
+0

.success()、.error()、および.complete()コールバックメソッドは、jQuery 3.0以降に削除されています。代わりに.done()、.fail()、および.always()を使用できます。 – ThucVu

+0

使用しているバージョンはわかりませんが、これは便利です。 –

+0

@TonySamperi私が使用している$ .when()ステートメントで質問を更新しました。リターンを追加すると、失敗したときに呼び出されず、理由がわかりません。彼らは両方とも成功すると成功しますが、失敗した場合は失敗します –

関連する問題