getJSON 错误处理 - 使用 2 个 API
getJSON error handling - using 2 APIs
首先这不是另一个跨域错误线程。我正在开发一个简单的网络应用程序,它使用两个 APIs(主要和备份)从不同的服务器检索相同的数据。我使用以下模式:
//some functions and variables for DOM handling
$.getJSON(mainUrl, function(results) {
//code to get and handle the data from main API
}).fail(function() {
$.getJSON(backupUrl, function(results) {
//code to get and handle the data from backup API
});
});
问题是主要 API 可能会在很多方面失败:
- 没有响应 - 我的代码按预期工作正常
- 响应,但由于 API 服务器的外部问题,returns 对象具有空属性。
第二个选项比较棘手,因为它不适合 getJSON .fail 场景。我可以处理的方法是添加一个 if 语句来检查对象属性是否不为 null 并从 backupAPI 处理程序中复制代码以检索备份源,所以它看起来像这样:
//some functions and variables for DOM handling
$.getJSON(mainUrl, function(results) {
if (results.property) {
//code to get and handle the data from main API
} else {
//code to get and handle the data from backup API
}
}).fail(function() {
$.getJSON(backupUrl, function(results) {
//code to get the data from backup API
});
});
但是,基本上我的 main.js 文件的两个地方都有相同的代码块,这似乎不是一个好的做法。
你们能不能帮我解决这个问题,避免把相同的代码放在一个地方两次?谢谢。
如何将 //code to get the data from backup API
放在一个函数中,然后在您放置该代码的任何地方调用该函数?
你最终会得到类似
的东西
//some functions and variables for DOM handling
$.getJSON(mainUrl, function(results) {
if (results.property) {
//code to get and handle the data from main API
} else {
getJSONFromBackup();
}
}).fail(function() {
getJSONFromBackup();
});
function getJSONFromBackup(){
$.getJSON(backupUrl, function(results) {
//code to get the data from backup API
});
}
首先这不是另一个跨域错误线程。我正在开发一个简单的网络应用程序,它使用两个 APIs(主要和备份)从不同的服务器检索相同的数据。我使用以下模式:
//some functions and variables for DOM handling
$.getJSON(mainUrl, function(results) {
//code to get and handle the data from main API
}).fail(function() {
$.getJSON(backupUrl, function(results) {
//code to get and handle the data from backup API
});
});
问题是主要 API 可能会在很多方面失败:
- 没有响应 - 我的代码按预期工作正常
- 响应,但由于 API 服务器的外部问题,returns 对象具有空属性。
第二个选项比较棘手,因为它不适合 getJSON .fail 场景。我可以处理的方法是添加一个 if 语句来检查对象属性是否不为 null 并从 backupAPI 处理程序中复制代码以检索备份源,所以它看起来像这样:
//some functions and variables for DOM handling
$.getJSON(mainUrl, function(results) {
if (results.property) {
//code to get and handle the data from main API
} else {
//code to get and handle the data from backup API
}
}).fail(function() {
$.getJSON(backupUrl, function(results) {
//code to get the data from backup API
});
});
但是,基本上我的 main.js 文件的两个地方都有相同的代码块,这似乎不是一个好的做法。
你们能不能帮我解决这个问题,避免把相同的代码放在一个地方两次?谢谢。
如何将 //code to get the data from backup API
放在一个函数中,然后在您放置该代码的任何地方调用该函数?
你最终会得到类似
的东西//some functions and variables for DOM handling
$.getJSON(mainUrl, function(results) {
if (results.property) {
//code to get and handle the data from main API
} else {
getJSONFromBackup();
}
}).fail(function() {
getJSONFromBackup();
});
function getJSONFromBackup(){
$.getJSON(backupUrl, function(results) {
//code to get the data from backup API
});
}