gpt4 book ai didi

r - 如何使用代码在 R Shiny 中触发 session$onSessionEnded?

转载 作者:行者123 更新时间:2023-12-05 04:47:28 30 4
gpt4 key购买 nike

我确实在 Shiny 应用程序的 session$onSessionEnded()(例如 DBI::dbDisconnect())中执行了一些代码,我想知道直接从 R 代码触发它的最佳实践(例如,当不满足条件时,您关闭应用程序但也想触发这段代码)。

stop() 将停止 R 代码(但不是应用程序本身让“幽灵”应用程序),而 stopApp() 将关闭应用程序而不触发 session $onSessionEnded()

例如,我应该创建一个我应该在 stopApp()ing 之前调用的函数,还是有办法告诉应用程序触发 session$onSessionEnded()?像 session$endSession() 吗?

最佳答案

你可以调用session$close()从服务器函数内的任何位置停止当前 session 。

这是一个例子:

library(shiny)

ui <- fluidPage(
actionButton("stopSession", "Stop session")
)

server <- function(input, output, session) {

session$onSessionEnded(function(){
cat(sprintf("Session %s was closed\n", session$token))
})

observeEvent(input$stopSession, {
cat(sprintf("Closing session %s\n", session$token))
session$close()
})
}

shinyApp(
ui,
server,
onStart = function() {
cat("Doing application setup\n")
onStop(function() {
cat("Doing application cleanup\n")
})
}
)

关于r - 如何使用代码在 R Shiny 中触发 session$onSessionEnded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68457962/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com