mirror of
https://github.com/rstudio/shiny.git
synced 2026-02-18 02:21:41 -05:00
Merge pull request #837 from rstudio/joe/bugfix/callbacks-fifo
Ensure that callbacks fire in a FIFO order
This commit is contained in:
3
R/map.R
3
R/map.R
@@ -23,6 +23,9 @@ Map <- R6Class(
|
||||
env[[key]] <- value
|
||||
value
|
||||
},
|
||||
mget = function(keys) {
|
||||
base::mget(keys, env)
|
||||
},
|
||||
mset = function(...) {
|
||||
args <- list(...)
|
||||
if (length(args) == 0)
|
||||
|
||||
@@ -580,7 +580,11 @@ Callbacks <- R6Class(
|
||||
})
|
||||
},
|
||||
invoke = function(..., onError=NULL) {
|
||||
for (callback in .callbacks$values()) {
|
||||
# Ensure that calls are invoked in the order that they were registered
|
||||
keys <- as.character(sort(as.integer(.callbacks$keys()), decreasing = TRUE))
|
||||
callbacks <- .callbacks$mget(keys)
|
||||
|
||||
for (callback in callbacks) {
|
||||
if (is.null(onError)) {
|
||||
callback(...)
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user