Je suis en train d'écrire une fonction qui doit capturer une erreur de limitation de taux lors de l'interrogation d'une API basée sur le web.
J'utilise tryCatch
pour capturer l'erreur, et à l'intérieur de cette fonction, je spécifie la fonction d'erreur suivante:
error=function(e) {
warning(paste(e,"\nEn attendant une heure pour que la limite de taux se réinitialise..."))
Sys.sleep(3600) # Attendre une heure pour que la limite de taux se réinitialise
return(user.info(user, ego.count))
}
La fonction semble fonctionner, mais en vérifiant les journaux de sortie du script, je remarque que le message d'avertissement n'est pas écrit avant que le temps de sommeil ne soit écoulé.
Je peux reproduire ce comportement dans la console R avec:
print("Drew sucks")
Sys.sleep(10)
Dix secondes s'écoulent avant que Drew sucks
ne soit imprimé dans la console. Dans ma fonction, je voudrais fournir un retour à l'utilisateur sur cette longue pause avant que la pause ne se produise.
Qu'est-ce qui cause ce comportement?