Как контролировать порядок выполнения программы в Shiny - PullRequest
0 голосов
/ 22 мая 2018

Я заметил, что компоненты GUI моего приложения пытаются отображать все одновременно, и если отображение медленное (у моего компьютера только два процессора), они отображаются одновременно и не в порядке.Интересно, есть ли способ управления порядком отображения компонентов графического интерфейса, и если какой-то виджет медленно отображается, заставьте другой виджет ждать до завершения предыдущего.Кроме того, я обнаружил, что на моем компьютере с двумя процессорами, если функция занимает огромное количество времени, любой другой предыдущий компонент графического интерфейса не отображается, и длинная функция, кажется, занимает процессор.Я не очень много знаю об этом, но есть ли все функции загружались одновременно и конкурировали за ресурсы.Есть ли способ контролировать порядок выполнения программы?Спасибо.

1 Ответ

0 голосов
/ 22 мая 2018

Лучший способ обеспечить (грубый) порядок исполнения, который я придумала, - это свободное использование функции req.От ?req:

Убедитесь, что значения доступны («правдивые» - см. «Детали»), прежде чем приступать к расчету или действию.Если какое-либо из указанных значений не соответствует действительности, операция останавливается, вызывая «тихое» исключение (не зарегистрировано Shiny и не отображается в пользовательском интерфейсе приложения Shiny)

Вы можете использовать reqтребовать, чтобы первый виджет завершил (либо проверяя ожидаемый результат, либо используя переменную в качестве флага first_widget_done), прежде чем продолжить работу с кодом второго виджета.

RE: Truthy:

Термины «правдивый» и «ложный» обычно указывают, является ли значение, приведенное к логическому, ИСТИННЫМ или ЛОЖНЫМ.

as.logical(0)   # FALSE
as.logical(1)   # TRUE
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...