Ich muss jQuerys getJSON-Funktion überschreiben und frage mich, ob es eine Möglichkeit gibt, innerhalb der Override-Funktion Versprechungsfunktionen (done/fail) zu bekommen. Ich würde denken, dass die Funktionen irgendwo gespeichert sind. Hier ist der Beginn des Codes:Überschreibe getJSON und bekomme jQuery Versprechen (done/fail)
(function ($) {
$.getJSON = function (url, data, callback) {
this.done = function(){};
this.fail = function(){};
var newDoneFtn = function(response) {
var newData = JSON.parse(response.data);
//call done function here with newData variable
}
var newFailFtn = function() {
//call fail function here
}
newFunction(url, data, newDoneFtn, newFailFtn);
};
})(jQuery);
$.getJSON(someURL, {
id: 1
}).done(function(data) {
console.log(data);
}).fail(function() {
console.log('failed');
});
Wo ich stecken bin versucht, das zu tun bekommen und gescheiterten Funktionen auf dem getJSON Aufruf mit dem newFunction verwendet werden. Bitte beachten Sie, dass ich newFunction nicht ändern kann.
Nein, Sie nur ein jQuery latenten zurückkehren müssen: Sie können eine $.Deferred zurück. – Bergi
Warum denken Sie, dass Sie 'getJSON' überschreiben müssen? Was ist Ihr [tatsächliches Problem] (https://meta.stackexchange.com/q/66377)? – Bergi
Ich habe es mit einem Android-Problem in Cordova zu tun und möchte nicht jede getJSON-Funktion neu schreiben müssen, um die cordova.plugin.http.get-Funktion für ältere Android-Versionen (vor 5) zu verwenden. Habe das nicht erwähnt, da ich die Dinge nicht zu kompliziert machen wollte. – fanfavorite