runWaterfall: Run a list of functions as waterfall

Description Usage Arguments Details Value See Also Examples

Description

runWaterfall runs its input tasks sequentially, passing each task's return value to the next task, and returns either a named list (on error NULL) or the value of a given callback.

Usage

1
runWaterfall(tasks = list(NULL), cb = NULL)

Arguments

tasks

List of functions (anonymous and named) required.

cb

Anonymous or named function with signature cb(error, data) optional.

Details

All tasks except the first must have at least one parameter. If an error is encountered while calling the tasks without a callback runWaterfall immediately stops execution and returns NULL. If an error is encountered and a callback is defined runWaterfall immediately stops execution and calls the callback with the data parameter set to NULL and the error parameter set to the encountered error. Thus, the callback will always have only one non-NULL argument. Within the callback simply check for an error with is.null(error). If the error object is not NULL it has a property $task indicating the function that failed.

Value

If cb is NULL the tasks' return values are returned in a named list (on error NULL). If cb is a function it is called upon completion of all tasks and gets passed an error value (default NULL) as first parameter and a named list of the tasks' return values (on error NULL) as second parameter.

See Also

runSeries runRace runParallel https://github.com/feross/run-waterfall

Examples

1
2
3
4
5
6
7
callback <- function(err, d) {
  if (is.null(err)) d else stop(err, err$task)
}
runWaterfall(list(function() 1L, 
                  function(a) a + 2L, 
                  function(a) a + 3L), 
             callback)

chiefBiiko/runr documentation built on May 13, 2019, 4:11 p.m.