# Outcome `'deferred'`

> Contract 2.0.0 · package sha256 `a857eca95b35921109faf997094bb4192f12527d9d0fcd4be7e97f06425bad6e` · generated from `configurator-runtime.d.ts` and `tables/problems.json` by `services/onsite-scripter/scripts/build-contract-docs.mjs`; edit the source, not this file.

A member of [`Outcome`](../api/Outcome.md) · stable · since 2.0.0

a camera move or clip through a `tx`; it starts when that transaction is shown.

## Where the declaration names it

- [`Animations`](../api/Animations.md): Through a `tx`: `play` and `pause` resolve 'deferred' and start when the commit is shown; `stop` and `reset` are staged, so `worldPose`, `bounds()` and `connectors()` read frame 0 at once and the screen shows it at the commit.
- [`Animations.pause`](../api/Animations.pause.md): Through a `tx`: 'deferred'.
- [`Animations.play`](../api/Animations.play.md): Through a `tx`: 'deferred', and it starts when the commit is shown.
- [`Camera`](../api/Camera.md): Through a `tx`: resolves 'deferred' at once and starts when the commit is shown; a `durationMs: 0` view write lands in the frame that presents the commit, so the reveal shows the new view.
- [`Camera.set`](../api/Camera.set.md): Outcome: 'committed' when the move ends, or when a newer view write or a shopper's pointer or touch gesture ('camera:control-start'; not a wheel, which only changes the distance the move lands at) takes it over, so 'committed' does not say the view landed; through a `tx`, 'deferred'.
- [`Session.transaction`](../api/Session.transaction.md): - Camera moves and clips through `tx` resolve 'deferred' and start when the commit is shown; a `durationMs` or `fadeMs` tween (rules, materials, the stage) resolves 'staged' at once and also starts then, so awaiting it inside `work` never waits for the tween; [`animations.reset`](../api/Animations.reset.md) and `stop` are staged, so reads see frame 0 at once.

The set is open: handle a code you don't know (`'other'`).
