# Rerun Operator

Rocket.rerunFunction
rerun(count::Int = -1)

Returns an Observable that mirrors the source Observable with the exception of an error. If the source Observable calls error, this method will resubscribe to the source Observable for a maximum of count resubscriptions (given as a number parameter) rather than propagating the error call.

Arguments:

• count::Int: Number of retry attempts before failing. Optional. Default is -1.

Producing

Stream of type <: Subscribable{L} where L refers to type of source stream

Examples

using Rocket

source = from(1:3) |> safe() |> map(Int, (d) -> d > 1 ? error("Error") : d) |> rerun(3)

subscribe!(source, logger())
;

# output
[LogActor] Data: 1
[LogActor] Data: 1
[LogActor] Data: 1
[LogActor] Data: 1
[LogActor] Error: ErrorException("Error")
source

# Description

Any and all items emitted by the source Observable will be emitted by the resulting Observable, even those emitted during failed subscriptions. For example, if an Observable fails at first but emits [1, 2] then succeeds the second time and emits: [1, 2, 3, 4, 5] then the complete stream of emissions and notifications would be: [1, 2, 1, 2, 3, 4, 5, complete].