Scope
Незавиисимый изолированиый инстанс приложения, содержит копию всех юнитов (включая связи между ними) и основные методы для доступа к ним.
Основные области применения - реализация SSR и тестирование приложения.
Scope может быть создан с помощью fork
Формула#
Методы#
getState#
Возвращает значение стора в данном scope
Пример использования getState#
Создание двух инстансов приложения, вызов событий в них и проверка сохранения значения стора $counter в каждом из них
Императивные вызовы эффектов и scope#
Если эффект вызывает другие эффекты, то он может вызывать только эффекты, а не обычные асинхронные функции, и вызовы эффектов должны иметь await:
Правильно, эффект без внутренних эффектов:
Правильно, эффект с внутренними эффектами:
Неправильно, эффект с внутренними эффектами после обычных асинхронных вызовов:
Таким образом, любой эффект может либо вызывать другой эффект, либо выполнять некоторые асинхронные вычисления, но не то и другое
tip
Вместо императивных вызовов оптимальнее использовать attach
caution
Императивные вызовы эффектов поддерживаются только в обработчиках других эффектов, не в watch функциях