如何在出现错误时发出新请求?(fromJSON)

如何在出现错误时发出新请求?(fromJSON),r,json,try-catch,jsonlite,R,Json,Try Catch,Jsonlite,我有一段代码,我使用jsonlite包请求API 我的要求是: aux <- fromJSON (www ... js) 我需要它,当出现错误时,代码等待X秒并发出一个新的请求,这将重复,直到我得到请求的数据 我找到了try和tryCatch函数和retry包。但我无法按我的需要使其工作。尝试以下方法: aux <- tryCatch(fromJSON (www ... js), error = function(e) {return(NA)}) while(all(is.na(

我有一段代码,我使用jsonlite包请求API

我的要求是:

aux <- fromJSON (www ... js)
我需要它,当出现错误时,代码等待X秒并发出一个新的请求,这将重复,直到我得到请求的数据

我找到了trytryCatch函数和retry包。但我无法按我的需要使其工作。

尝试以下方法:

aux <- tryCatch(fromJSON (www ... js), error = function(e) {return(NA)})

while(all(is.na(aux))) {
  Sys.sleep(30) #Change as per requirement. 
  aux <- tryCatch(fromJSON(www ... js), error = function(e) {return(NA)})
}

aux谢谢你的回答。显然它起作用了。这部分代码“error=function(e){return(NA)}”仅在TryCatch检测到任何错误消息时返回“NA”?对吧?没错。如果检测到任何错误,
aux
的值为
NA
aux <- tryCatch(fromJSON (www ... js), error = function(e) {return(NA)})

while(all(is.na(aux))) {
  Sys.sleep(30) #Change as per requirement. 
  aux <- tryCatch(fromJSON(www ... js), error = function(e) {return(NA)})
}