Size: a a a

2020 October 20

PM

Pavel 🦇 Malyshev in Svelte [svelt]
а стоп, это не поле, а просто текстовое значение с сервера что ли?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
ты его чекаешь каждые 5 секунд ?
источник

МТ

Марк Танащук... in Svelte [svelt]
let initialObject = {
 field1: "Value",
 subObj: {
   field2: "Value",
   field3: "Value"
 }
};
let fieldChanged, newValue;
export const store = writable(initialObject, () => {
 setInterval(async () => {
   newValue = (await admin.getField("field"));
   if(newValue != get(store).field1) {
     store.set({
       field1: newValue,
       subObj: {
         field2: get(store).subObj.field2,
         field3: get(store).subObj.field3
       }
     })
   }
 }, 5_000)
})
источник

МТ

Марк Танащук... in Svelte [svelt]
Рабочая версия
источник

МТ

Марк Танащук... in Svelte [svelt]
Марк Танащук
let initialObject = {
 field1: "Value",
 subObj: {
   field2: "Value",
   field3: "Value"
 }
};
let fieldChanged, newValue;
export const store = writable(initialObject, () => {
 setInterval(async () => {
   newValue = (await admin.getField("field"));
   if(newValue != get(store).field1) {
     store.set({
       field1: newValue,
       subObj: {
         field2: get(store).subObj.field2,
         field3: get(store).subObj.field3
       }
     })
   }
 }, 5_000)
})
Каждые 5 секунд я запрашиваю значение поля в админ панели(грубо говоря в БД) и сравниваю с предыдущим.

Если изменилось - сетить новое значение, иначе сетить старое.
Почему то если каждый раз сетить результат промиса то оно реактивирует {#key}
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Рабочая версия
а зачем выставляется если не fieldChanged ?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
у тебя 4 раза вызывается get(store) это капец
источник

МТ

Марк Танащук... in Svelte [svelt]
Pavel 🦇 Malyshev
у тебя 4 раза вызывается get(store) это капец
Я весь код писал в телеграме
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
а)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
тебе надо именно на writable?
источник

МТ

Марк Танащук... in Svelte [svelt]
Pavel 🦇 Malyshev
тебе надо именно на writable?
Если будет сильно лучше реализация на readable или derived то я не откажусь
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
на asyncable будет проще, но тогда значение стора будет промис и его нужно будет резолвить каждый раз по месту
источник

МТ

Марк Танащук... in Svelte [svelt]
Pavel 🦇 Malyshev
на asyncable будет проще, но тогда значение стора будет промис и его нужно будет резолвить каждый раз по месту
Вот я и не хочу await везде прописывать, если возможно...
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Вот я и не хочу await везде прописывать, если возможно...
значит writable
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Pavel 🦇 Malyshev
а зачем выставляется если не fieldChanged ?
так и не вкурил
источник

МТ

Марк Танащук... in Svelte [svelt]
Pavel 🦇 Malyshev
у тебя 4 раза вызывается get(store) это капец
Кстати, а это дорогая операция?
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Кстати, а это дорогая операция?
ну каждый раз подписка-отписка. я рамках одной функции лучше конечно закжшировать)
источник

PM

Pavel 🦇 Malyshev in Svelte [svelt]
Марк Танащук
Кстати, а это дорогая операция?
так зачем выставляется стор если значение поля НЕ изменилось?
источник

МТ

Марк Танащук... in Svelte [svelt]
Pavel 🦇 Malyshev
так зачем выставляется стор если значение поля НЕ изменилось?
Поправил комментарий
источник

МТ

Марк Танащук... in Svelte [svelt]
Просто на рабочей версии у меня 3 свойства меняется и 3 не меняется свойства, по этому вместо пложения if и storeName.set я поменял на тернарные операторы в 1 storeName.set
источник