Skip to content

Callbacks Overview ​

Every generated composable supports four local lifecycle callbacks.

Execution flow ​

text
onRequest -> request -> onSuccess or onError -> onFinish

The wrappers call them in this order:

  1. onRequest before the request is sent
  2. onSuccess when the request resolves successfully
  3. onError when the request fails
  4. onFinish after success or error

Quick example ​

ts
useFetchGetPetById(
  {
    path: { petId: 123 },
  },
  {
    onRequest: ({ url }) => {
      console.log('Fetching from:', url)
    },
    onSuccess: (pet) => {
      console.log('Loaded:', pet.name)
    },
    onError: (error) => {
      console.error('Failed:', error.message)
    },
    onFinish: ({ success }) => {
      console.log('Request complete:', success)
    },
  }
)

What each callback is for ​

onRequest ​

Runs before the request and can return request modifications.

Use it for:

  • Adding headers
  • Adjusting body or query values
  • Request logging
  • Starting loading or tracing state

Learn more about onRequest

onSuccess ​

Runs after a successful request.

Use it for:

  • Success toasts
  • Navigation
  • Updating stores
  • Analytics

Learn more about onSuccess

onError ​

Runs when the request throws or returns an error response.

Use it for:

  • Error toasts
  • Redirecting on 401
  • Logging
  • Retry orchestration

Learn more about onError

onFinish ​

Runs after success or error and receives { data, error, success }.

Use it for:

  • Cleanup
  • Hiding loading UI
  • Completion metrics
  • Shared success or error finalization

Learn more about onFinish

Additive behavior ​

Local callbacks do not replace Nuxt's normal composable state. For example, onError can run and the composable error ref is still updated.

Global callbacks are a separate layer and run before local ones unless disabled or suppressed.

Guarantees ​

  • onRequest can return headers, body, or query modifications
  • onSuccess receives transformed data after pick and transform
  • onError receives the thrown error object from the underlying request
  • onFinish receives { data, error, success }

Next steps ​

Released under the Apache-2.0 License.