在我的代码中,我拨打了一些API调用,有时1返回错误,但是如果我在工作后重新播放它(我真的不知道有什么问题,也许是JSON我发布的未完成或我不知道...)
为了使我编码:
HTTP.call("POST", "http://localhost:3000/api/dashboards/db", {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': APIKEY,
},
data: {
dashboard: dataJSON,
overwrite: true
}
},
function(error, result) {
if (!error) {
console.error("result post dataJSON --------------------OK------------")
} else {
console.log("error post dataJSON --------------------KO------------")
HTTP.call("POST", "http://localhost:3000/api/dashboards/db", {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': APIKEY,
},
data: {
dashboard: dataJSON,
overwrite: true
}
},
function(error, result) {
if (!error) {
console.error("result post dataJSON at the 2nd time --------------------OK------------")
} else {
console.log("error post dataJSON at the 2nd time --------------------KO------------")
}
});
}
但是,我认为做这样的事情是非常丑陋的,这是在发生错误时回忆代码部分的一种方式吗?
好吧,我的第一个建议是了解为什么通话第一次失败,看看是否可以修复。
排除在内,这取决于您计划使用数据等,例如,您可以将HTTP调用隔离在函数中,并以相同的参数回忆函数。
。function callAPIwithData(myData) {
HTTP.call("POST", "http://localhost:3000/api/dashboards/db", {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json',
'Authorization': APIKEY,
},
data: myData
},
function(error, result) {
if (!error) {
console.error("OK: result post dataJSON")
} else {
console.log("KO: error post dataJSON")
console.log("retrying ...")
callAPIWithData(myData);
}
});
}
当然,这需要一组检查和余额,这样它就不会被卡住在Casa中的Infinity中,但您明白了。