forked from github/cordova-android
Catch exceptions in async callbacks.
This commit is contained in:
parent
1fa41df3f1
commit
b02f376826
@ -258,6 +258,7 @@ PhoneGap.execAsync = function(success, fail, clazz, action, args) {
|
|||||||
var callbackId = clazz + PhoneGap.callbackId++;
|
var callbackId = clazz + PhoneGap.callbackId++;
|
||||||
PhoneGap.callbacks[callbackId] = {success:success, fail:fail};
|
PhoneGap.callbacks[callbackId] = {success:success, fail:fail};
|
||||||
var r = PluginManager.exec(clazz, action, callbackId, JSON.stringify(args), true);
|
var r = PluginManager.exec(clazz, action, callbackId, JSON.stringify(args), true);
|
||||||
|
if (r) {
|
||||||
eval("var v="+r+";");
|
eval("var v="+r+";");
|
||||||
|
|
||||||
// If status is OK, then return value back to caller
|
// If status is OK, then return value back to caller
|
||||||
@ -270,18 +271,29 @@ PhoneGap.execAsync = function(success, fail, clazz, action, args) {
|
|||||||
console.log("Error: Status="+r.status+" Message="+v.message);
|
console.log("Error: Status="+r.status+" Message="+v.message);
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.log("Error: "+e);
|
console.log("Error: "+e);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
PhoneGap.callbackSuccess = function(callbackId, args) {
|
PhoneGap.callbackSuccess = function(callbackId, args) {
|
||||||
PhoneGap.callbacks[callbackId].success(args);
|
try {
|
||||||
|
PhoneGap.callbacks[callbackId].success(args.message);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.log("Error in success callback: "+callbackId+" = "+e);
|
||||||
|
}
|
||||||
delete PhoneGap.callbacks[callbackId];
|
delete PhoneGap.callbacks[callbackId];
|
||||||
};
|
};
|
||||||
|
|
||||||
PhoneGap.callbackError = function(callbackId, args) {
|
PhoneGap.callbackError = function(callbackId, args) {
|
||||||
PhoneGap.callbacks[callbackId].fail(args);
|
try {
|
||||||
|
PhoneGap.callbacks[callbackId].fail(args.message);
|
||||||
|
}
|
||||||
|
catch (e) {
|
||||||
|
console.log("Error in error callback: "+callbackId+" = "+e);
|
||||||
|
}
|
||||||
delete PhoneGap.callbacks[callbackId];
|
delete PhoneGap.callbacks[callbackId];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user