-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
После fail executon всея ячейки дерева state ACTUAL #46
Comments
Да, так и задумано. Значение (Cell#value) при этом сохраняется от предыдущего вычисления, иногда это очень удобно.
Тогда при каждом чтении ячейка будет каждый раз вычисляться и падать с ошибкой. Смысл её вычислять если зависимости не менялись и результат будет тот же самый. Лишние вычисления получаются. |
в том то и дело, что те зависимости, которые успели образоваться, пока выполнение функции не было прервано, они с вероятностью 50/50 не полные. |
Почему же? А если |
Вроде доехал до двух вариантов(может есть еще варианты?): Вариант 1. ...
const b = new Cell(() => { //ячейка в активном дереве
const res = w.get();
if(true) {
throw new Error(123);
}
return res + c.get();
});
... тут в принципе ничего не поможет и выставить ACTUAL корректно. Вариант 2 ...
const b = new Cell(() => { //ячейка в активном дереве
const res = w.get();
if(s.get() > 5) {
throw new Error(123);
}
return res + c.get();
});
... у
Значит задавать DIRTY неэффективно. т.е. как бы |
Привет.
Пример простого дерева:
Каждая из ячеек содержит ошибку и при этом ее состояние актуально.
Вроде странно, но ок если принять, что error наряду с value является частью состояния ячейки.
Изменил состояние error - сделал статус актуальным(если соблюдаются условия).
Вот пример по-интереснее:
после
truthy.set(false);
от
b
строится веткаb -> r -> s
,но при этом из-за ошибки отваливается ветка
b -> c -> d
.Тело функции выполнено не до конца, появились новые зависимости. Старые зависимости отвалились из-за экстренного выхода при выполнении функции. И в общем случае неизвестно сколько новых веток не создалось.
Есть ощущение, что в таком кейсе ставить
b
и всем ее реакциям статус ACTUAL не совсем верно.Это я все к тому, что может быть есть смысл всем ячейкам, где возникла ошибка, ставить DIRTY?
The text was updated successfully, but these errors were encountered: