Функции, которые не выполняются до Sys.sleep ()

Я пишу функцию, которая должна перехватывать ошибку ограничения скорости при проверке связи с веб-API.

I Я использую tryCatch , чтобы отловить ошибку, и внутри этой функции я указываю следующую функцию ошибки:

error=function(e) {
                warning(paste(e,"\nWaiting an hour for rate limit to reset..."))
                Sys.sleep(3600) # Wait an hour for rate-limit to reset
                return(user.info(user, ego.count))
            }

Функция работает, но при проверке журналов вывода для скрипта я замечаю, что предупреждающее сообщение не записывается, пока после не истечет время сна.

Я могу воспроизвести это поведение на консоли R с помощью:

print("Drew sucks")
Sys.sleep(10)

Прошло десять секунд, прежде чем Drew sucks будет напечатано на приставка. В своей функции я хотел бы предоставить пользователю обратную связь об этой длинной паузе перед тем, как пауза произойдет.

Что вызывает такое поведение?

7
задан DrewConway 31 May 2011 в 21:39
поделиться