TransformStream.Rd
An entangled pair of readable and writeable streams, wherein writing to the stream causes a transform function that can enqueue chunks to the readable side.
Events:
start
error
data
drain
backpressure
pipe
tee
close
Other streams:
ReadableStream
,
WriteableStream
streams::EventEmitter
-> TransformStream
desired_size
1
current_state
1
readable
1
writeable
1
controller
1
Inherited methods
streams::EventEmitter$emit()
streams::EventEmitter$event_names()
streams::EventEmitter$get_max_listeners()
streams::EventEmitter$listener_count()
streams::EventEmitter$off()
streams::EventEmitter$on()
streams::EventEmitter$once()
streams::EventEmitter$prepend_listener()
streams::EventEmitter$prepend_once_listener()
streams::EventEmitter$raw_listeners()
streams::EventEmitter$remove_all_listeners()
streams::EventEmitter$set_max_listeners()
new()
1
TransformStream$new(
start = NULL,
transform = NULL,
flush = NULL,
writeable_strategy = NULL,
readable_strategy = NULL
)
# All the functional streams are implemented using
# the transform stream class
# For instance, `streams::map_stream`:
map_stream <- function(fn, ...) {
fn <- to_function(fn)
TransformStream$new(
transform = function(chunk, controller) {
res <- fn(chunk)
controller$enqueue(res)
},
...
)
}
# Or `streams::filter_stream`
filter_stream <- function(fn, ...) {
fn <- to_function(fn)
TransformStream$new(
transform = function(chunk, controller) {
res <- isTRUE(fn(chunk))
if (res) {
controller$enqueue(chunk)
}
},
...
)
}