mirror of
https://github.com/rstudio/shiny.git
synced 2026-02-07 13:15:00 -05:00
21 lines
427 B
R
21 lines
427 B
R
#' @export
|
|
call_async <- function(func, ..., args = NULL) {
|
|
if (missing(args))
|
|
args <- list(...)
|
|
rx <- callr::r_bg(rlang::as_function(func), args)
|
|
|
|
promise::new_promise(function(resolve, reject) {
|
|
task <- function() {
|
|
if (rx$is_alive()) {
|
|
later::later(task, 0.1)
|
|
} else {
|
|
tryCatch(
|
|
resolve(rx$get_result()),
|
|
error = reject
|
|
)
|
|
}
|
|
}
|
|
task()
|
|
})
|
|
}
|