Объект с валидаторами юнитов
is.store(value)
Проверяет, является ли переданное значение стором
Возвращает
boolean
import { is, createStore, createEvent, createEffect, createDomain } from "effector";
const store = createStore(null);const event = createEvent();const fx = createEffect();
is.store(store);// => true
is.store(event);// => false
is.store(fx);// => false
is.store(createDomain());// => false
is.store(fx.pending);// => true
is.store(fx.done);// => false
is.store(store.updates);// => false
is.store(null);// => false
is.event(value)
Проверяет, является ли переданное значение событием
Возвращает
boolean
import { is, createStore, createEvent, createEffect, createDomain } from "effector";
const store = createStore(null);const event = createEvent();const fx = createEffect();
is.event(store);// => false
is.event(event);// => true
is.event(fx);// => false
is.event(createDomain());// => false
is.event(fx.pending);// => false
is.event(fx.done);// => true
is.event(store.updates);// => true
is.event(null);// => false
is.effect(value)
Проверяет, является ли переданное значение эффектом
Возвращает
boolean
import { is, createStore, createEvent, createEffect, createDomain } from "effector";
const store = createStore(null);const event = createEvent();const fx = createEffect();
is.effect(store);// => false
is.effect(event);// => false
is.effect(fx);// => true
is.effect(createDomain());// => false
is.effect(null);// => false
is.domain(value)
Проверяет, является ли переданное значение доменом
Возвращает
boolean
import { is, createStore, createEvent, createEffect, createDomain } from "effector";
const store = createStore(null);const event = createEvent();const fx = createEffect();
is.domain(store);// => false
is.domain(event);// => false
is.domain(fx);// => false
is.domain(createDomain());// => true
is.domain(null);// => false
is.scope(value)
Добавлен в effector 22.0.0
Проверяет, является ли переданное значение скоупом
Возвращает
boolean
import { fork } from "effector";
const store = createStore(null);const event = createEvent();const fx = createEffect();const scope = fork();
is.scope(scope);// => true
is.scope(store);// => false
is.scope(event);// => false
is.scope(fx);// => false
is.scope(createDomain());// => false
is.scope(null);// => false
is.unit(value)
Проверяет, является ли переданное значение юнитом: стором, эвентом, эффектом, доменом или скоупом
Возвращает
boolean
import { is, createStore, createEvent, createEffect, createDomain, fork } from "effector";
const store = createStore(null);const event = createEvent();const fx = createEffect();const scope = fork();
is.unit(scope);// => true
is.unit(store);// => true
is.unit(event);// => true
is.unit(fx);// => true
is.unit(createDomain());// => true
is.unit(fx.pending);// => true
is.unit(fx.done);// => true
is.unit(store.updates);// => true
is.unit(null);// => false
is.attached(value)
Добавлен в effector 22.4.0
Проверяет, что переданный effect был создан с помощью метода attach.
Если в качестве аргумента был передан не effect, возвращает false
.
Возвращает
boolean
import { is, createStore, createEvent, createEffect, createDomain, attach } from "effector";
const $store = createStore(null);const event = createEvent();const fx = createEffect();
const childFx = attach({ effect: fx,});
is.attached(childFx);// => true
is.attached(fx);// => false
is.attached($store);// => false
is.attached(event);// => false
is.attached(createDomain());// => false
is.attached(null);// => false
Пример использования
Иногда нужно добавить отображение ошибок на эффекты, но только на те, которые были “локализованы” через attach
.
Если оставить onCreateEffect
как есть, без проверок, то лог ошибки будет задублирован.
import { createDomain, attach, is } from "effector";
const logFailuresDomain = createDomain();
logFailuresDomain.onCreateEffect((effect) => { if (is.attached(effect)) { effect.fail.watch(({ params, error }) => { console.warn(`Effect "${effect.compositeName.fullName}" failed`, params, error); }); }});
const baseRequestFx = logFailuresDomain.createEffect((path) => { throw new Error(`path ${path}`);});
const loadDataFx = attach({ mapParams: () => "/data", effect: baseRequestFx,});
const loadListFx = attach({ mapParams: () => "/list", effect: baseRequestFx,});
loadDataFx();loadListFx();
Документация на английском языке - самая актуальная, поскольку её пишет и обновляет команда effector. Перевод документации на другие языки осуществляется сообществом по мере наличия сил и желания.
Помните, что переведенные статьи могут быть неактуальными, поэтому для получения наиболее точной и актуальной информации рекомендуем использовать оригинальную англоязычную версию документации.