Я использую библиотеку "future", чтобы ускорить время запуска моего блестящего приложения.
В скрипте global.R мне нужно загрузить несколько больших данных RDS.Поскольку я не хочу, чтобы пользователь ждал 1-2 минуты во время загрузки данных, я использую Future для перемещения загрузки данных на выделенное ядро:
global.R
...
library(future)
plan(multicore)
...
...
FDA_path <- file.path(data_path, "FDA")
# Load data
fda_data_path <- file.path(FDA_path, "fda_labels.RDS")
fda_filter_path <- file.path(FDA_path, "fda_filters.RDS")
fda_data_main %<-% readRDS(fda_data_path)
fda_filters_df %<-% readRDS(fda_filter_path)
...
Все работает гладко, и пользователь увидит, как приложение открывается через несколько секунд, пока данные загружаются в фоновом режиме.
Как только приложение появляется, пользователь по-прежнему не может использоватьданные, так как они загружаются, поэтому я хотел бы показать уведомление пользователю.Я пробовал это:
Server.R
fdaDataSearch <- reactive({
if(!resolved(futureOf(fda_data_main))){
showNotification("loading FDA data",type="warning")
}
fda_data_main %>% filter(id %in% fdaDataSearch_ids())
})
Этот код используется для создания кадра данных, который отображается для пользователя.В соответствии с «будущей» документацией (https://cran.r -project.org / web / packages / future / vignettes / future-1-Overview.html ) функцию «разрешенные» можно использовать для отслеживания, если когдапроцесс заканчиваетсяТак что я хотел, чтобы при попытке пользователя сгенерировать фрейм данных, если процесс все еще выполняется, отображается уведомление.
Инструкция не работает, и я получаю сообщение об ошибке:
Предупреждение: ошибка в: Future_data_main ') не найден в среде' ':' fda_data_main '
Почему я получаю эту ошибку?Есть другой способ проверить, завершился ли процесс, и уведомить пользователя?