我正在处理一个项目,我们有一个自定义的 Try Catch 函数,我们将所有函数都包装在其中。 Try Catch函数是这样的
function TryCatch(fxn) {
try {
//this is the function code that should be called
fxn();
} catch (err) {
//an error occurred. attempt to log it back to the server
TryLogError("", err, false);
}
}
我们这样使用它
function NewAdministratorDataToSubmit() {
TryCatch(function () {
var admin = {
administratorName: $("#txtNewAdmin").val(),
administratorPassword: $("#txtPassword").val(),
administratorEmail: $("#txtAdministratorEmail").val(),
administratorRoleID: $("#AdminRoles").val(),
LoginUserName: $("#txtNewAdminUserName").val()
};
return admin;
});
}
但是,由于我们将它包装成那样,所以我们没有得到返回值。
我试过这样做
function NewAdministratorDataToSubmit() {
return {
TryCatch(function () {
var admin = {
administratorName: $("#txtNewAdmin").val(),
administratorPassword: $("#txtPassword").val(),
administratorEmail: $("#txtAdministratorEmail").val(),
administratorRoleID: $("#AdminRoles").val(),
LoginUserName: $("#txtNewAdminUserName").val()
};
return admin;
});
}
}
然后抛出错误,例如 在传递的函数中
The Use Of a Keyword for an Identifier is invalid
和结束
TryCatch is Syntax Error
因此,我需要修复 TryCatch 函数以返回值,或者向仅返回值的函数添加返回。但并不是所有的函数都有返回值
TryCatch 用于所有函数。
有什么想法吗?
最佳答案
您缺少 return
语句。
function TryCatch(fxn) {
try {
return fxn(); // return the result of the function call
} catch (err) {
TryLogError("", err, false);
}
}
关于javascript - 尝试 Catch 函数不返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48356237/