Effection Logo

function suspend

thefrontside/effection

function suspend(): Operation<void>

Indefinitely pause execution of the current operation. It is typically used in conjunction with an action to mark the boundary between setup and teardown.

function onEvent(listener, name) {
  return action(function* (resolve) {
    try {
      listener.addEventListener(name, resolve);
      yield* suspend();
    } finally {
      listener.removeEventListener(name, resolve);
    }
  });
}

An operation will remain suspended until its enclosing scope is destroyed, at which point it proceeds as though return had been called from the point of suspension. Once an operation suspends once, further suspend operations are ignored.

Return Type

Operation<void>

an operation that suspends the current operation