Methods

allSettled(unit, {scope, params?})

Calls the provided unit within the current scope and wait for all triggered effects to complete.

Formulae

allSettled<T>(unit: Event<T>, {scope: Scope, params?: T}): Promise<void>
allSettled<T>(unit: Effect<T, Done, Fail>, {scope: Scope, params?: T}): Promise<
  | {status: 'done'; value: Done}
  | {status: 'fail'; value: Fail}
>
allSettled<T>(unit: Store<T>, {scope: Scope, params?: T}): Promise<void>

Arguments

  1. unit: Event or Effect to be called
  2. scope: Scope
  3. params: params passed to unit
since

Return value for effect is supported since effector 21.4.0

Examples

Contribution

TBD

Please, open PullRequest and contribute examples for this section via “Edit this page” link below.

allSettled(scope)

Checks the provided scope for any ongoing computations and wait for their completion.

Formulae

allSettled<T>(scope): Promise<void>

Arguments

  1. scope: Scope
since

Supported since effector 22.5.0

Examples

Usage in tests

For example, tests that validate the integration with an external reactive API

import {createEvent, sample, fork, scopeBind, allSettled} from 'effector'

test('integration with externalSource', async () => {
  const scope = fork()

  const updated = createEvent()

  sample({
    clock: updated,
    target: someOtherLogicStart,
  })

  // 1. Subscribe event to external source
  const externalUpdated = scopeBind(updated, {scope})
  externalSource.listen(() => externalUpdates())

  // 2. Trigger update of external source
  externalSource.trigger()

  // 3. Wait for all triggered computations in effector's scope, even though these were not triggered by effector itself
  await allSettled(scope)

  // 4. Check anything as usual
  expect(...).toBe(...)
})
Contributors