Coroutine
Coroutines in senegal both control the execution of a program and take care of error handling.
function foo() => throw('bar');
var coroutine = Coroutine(foo);
var err = coroutine.try();
println(err); // bar
Constructor
Coroutine(closure)
Creates a new coroutine that calls the given closure when the coroutine is run. closure's function must have a maximum of one argument.
Static Methods
current()
Returns the current running coroutine.
Methods
call([param])
Starts/resumes the coroutine, passes param to the coroutines function if it is passed.
isComplete()
Returns true if this has completed, a paused function is not completed.
takeover()
Runs this without setting the current running coroutine as the caller. This means that execution will not go back to the current coroutine.
takeoverError()
Runs this without setting the current running coroutine as the caller while keeping the current coroutine's error.
This means that execution will not go back to the current coroutine.