allSettled
allSettled(unit, {scope, params?})
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>
Call the provided unit within the current scope and wait for all triggered effects to complete
Arguments
since
Return value for effect is supported since effector 21.4.0
Example
Contribution
Please, open PullRequest and contribute examples for this section via “Edit this page” link below.
allSettled(scope)
allSettled<T>(scope): Promise<void>
Check the provided scope for any ongoing computations and wait for their completion.
Arguments
scope
: Scope
since
Supported since effector 22.5.0
Example
Usage in tests
For example, tests that validate the integration with an external reactive API
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(...)
})