我正在尝试在失败后重试请求。但是,我想延迟请求。我无法setTimeout
工作,因为我的函数测试返回的 json(并且它是递归的)并且 setTimeout 不返回回调的返回值。
function makeRequest(req, nextjson, attempts){
// I'm using a different method here
get({url: "http://xyz.com", json: nextjson},
function(err, json2){
if(err===200){
return json2
} else {
// json2 might be bad, so pass through nextjson
if(attempts < 5){
return makeRequest(req, nextjson, attempts+1)
} else {
// pass back the bad json if we've exhausted tries
return json2
}
}
})
}
我想延迟递归调用的执行。另外,我对这段代码有点尴尬。太迫切了。如果你有办法清理它,我也会很感激