This function implement a mechanism to postpone actions, which can be executed at a later stage. This is useful when developing packages, where actions that need to be run in the link{.onLoad} function but can be defined close to their context.

postponeAction(
  expr,
  key = digest(tempfile()),
  group = NULL,
  envir = topns(strict = FALSE),
  verbose = getOption("verbose")
)

runPostponedAction(group = NULL, verbose = getOption("verbose"))

Arguments

expr

expression that define the action to postpone. Currently only functions are supported.

key

identifier for this specific action. It should be unique across the postponed actions from the same group.

group

optional parent action group. This enables to define meaningful sets of actions that can be run all at once.

envir

environment in which the action should be executed. Currently not used.

verbose

logical that toggles verbose messages.

Examples

opt <- options(verbose=2) # define actions postponeAction(function(){print(10)}, "print")
#> # Postponing action 'print'
postponeAction(function(){print(1:10)}, "more")
#> # Postponing action 'more'
postponeAction()
#> [1] "print" "more"
# execute actions runPostponedAction()
#> # Executing postponed action(s) in package 'R_GlobalEnv' ...
#>
#> ** Action 'print' [R_GlobalEnv]
#> [1] 10
#> ** Action 'more' [R_GlobalEnv]
#> [1] 1 2 3 4 5 6 7 8 9 10
#> OK [2]
runPostponedAction()
#> # Executing postponed action(s) in package 'R_GlobalEnv' ...
#> OK [0]
# restore options options(opt)