我正在使用async.parallel
创建一个调用API的代码但有时API(即我的代码中的cd.ChartData或ob.OrderBook)会返回错误。
在这种情况下,我想重复调用两个API,即使只有一个API返回错误。
怎么做?
async.parallel([
function(callback){
cd.ChartData(pair,end,days,function(ChartData){
callback(null,ChartData);
},
function(callback){
ob.OrderBook(pair, depth, function(OrderBook){
callback(null,OrderBook);
});
}
],
function(err, results){
})
module.exports.ChartData = function(pair, end, days, callback){
request.get(url, function(error, response, body){
if (error) {
callback(error);
} else {
ChartData = JSON.parse(body);
callback(ChartData);
}
});
};
答案 0 :(得分:0)
我们可以使用递归函数。
***请注意,当request.get
出现错误时,此模式将导致函数无限循环,因此您可能希望限制重试次数。
//let's change your callback to standard Node.js callback format, callback(error, result)
//the first parameter to callback should always be null when there is no error but don't skip it
module.exports.ChartData = function(pair, end, days, callback) {
request.get(url, function(error, response, body){
if (error) {
console.error(error);
exports.ChartData(pair, end, days, callback); //keep trying if error occurs
} else {
ChartData = JSON.parse(body);
callback(null, ChartData);
}
});
};