Предоставьте контекст ручного отслеживания при выполнении чтенияJavascript

Форум по Javascript
Ответить
Anonymous
 Предоставьте контекст ручного отслеживания при выполнении чтения

Сообщение Anonymous »

solid.js определяет контекст отслеживания (то есть эффект, который должен повторить) при чтении реактивного примитива (например, сигнала, меморандум), основанный на внутреннем глобальном стеке библиотеки. /> Есть ли какой -нибудь способ получить контекст отслеживания в Createeffect < /code>, а затем использовать этот контекст отслеживания при доступе к реактивному примитиву? < /p>
e.g. Что -то вроде этого: < /p>
const [data, setData] = createSignal();

createEffect(async () => {
const trackingContext = hypothetical_getTrackingContext();
await new Promise((res) => setTimeout(res, 100));
const trackedData = hypothetical_runWithTrackingContext(trackingContext, () => {
return data();
});
});

Я знаком с Getowner и Runwithowner и попытался экспериментировать с этим, однако, по -видимому, связаны с временем жизни и т. Д. И не контекст отслеживания в определенном эффекте. Пользовательский createeffect < /code> функция, которая до сих пор использует подавляющее большинство внутренних интерфейсов Solid.js и которая достигает моего желаемого результата? это: < /p>
class Effect {
constructor(...) {...}
track(callback) {...}
}

const [data, setData] = createSignal();
const effect = new Effect(...);
await new Promise((res) => setTimeout(res, 100));
effect.track(() => {
const trackedData = data();
});


Подробнее здесь: https://stackoverflow.com/questions/797 ... ming-reads
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»