Size: a a a

2020 November 03

И

Иван in ☄️ effector
createStore<🦉> ⁣
это три задачи
А эти задачи можно как-то разделить в реальном мире? Например, подписаться одним обработчиком, а отписаться другим. Или подписаться одним, а обрабатывать другим?

Эти три задачи всегда связаны обработчиком и они неразделимы в контексте бизнес-задачи. Поэтому многие библиотеки предоставляют удобный интерфейс для работы с потоком событий — сущность, которая знает как подписаться и как отписаться
источник

c⁣

createStore<🦉>... in ☄️ effector
Иван
А эти задачи можно как-то разделить в реальном мире? Например, подписаться одним обработчиком, а отписаться другим. Или подписаться одним, а обрабатывать другим?

Эти три задачи всегда связаны обработчиком и они неразделимы в контексте бизнес-задачи. Поэтому многие библиотеки предоставляют удобный интерфейс для работы с потоком событий — сущность, которая знает как подписаться и как отписаться
реального мира нет
источник

c⁣

createStore<🦉>... in ☄️ effector
ты решаешь задачи разработки
источник

c⁣

createStore<🦉>... in ☄️ effector
и у тебя всегда есть 3 этапа
источник

c⁣

createStore<🦉>... in ☄️ effector
и каждый из них может фейлнуться
источник

YL

Yan👀 Lobaty in ☄️ effector
Иван
А эти задачи можно как-то разделить в реальном мире? Например, подписаться одним обработчиком, а отписаться другим. Или подписаться одним, а обрабатывать другим?

Эти три задачи всегда связаны обработчиком и они неразделимы в контексте бизнес-задачи. Поэтому многие библиотеки предоставляют удобный интерфейс для работы с потоком событий — сущность, которая знает как подписаться и как отписаться
просто отписаться от события дело нехитрое ты ведь хочешь помимо этого совершить действие (removeEventListener)
источник

YL

Yan👀 Lobaty in ☄️ effector
а для уровня бизнес-логики работа с дом апи это сайд-эффект
источник

c⁣

createStore<🦉>... in ☄️ effector
Иван
А эти задачи можно как-то разделить в реальном мире? Например, подписаться одним обработчиком, а отписаться другим. Или подписаться одним, а обрабатывать другим?

Эти три задачи всегда связаны обработчиком и они неразделимы в контексте бизнес-задачи. Поэтому многие библиотеки предоставляют удобный интерфейс для работы с потоком событий — сущность, которая знает как подписаться и как отписаться
хочешь сущность которая инкапсулирует этот процесс — напиши
источник

M

Miseo in ☄️ effector
Aleksandr Osipov
вот я и говорю, покажите код который обновляет стор sepStore
если поможет )

const updSepStore = (allStore, newData) => {
  const asLen = allStore !== undefined ? allStore.length : 0;
  const ndLen = newData !== undefined ? newData.length : 0;

  const allData = new Array(asLen + ndLen);

 const compareTime = moment().subtract(1, 'minutes').format('YYYY-MM-DD HH:mm');

 if (newData !== undefined) {
     for (let i = 0; i < ndLen; i++) {
         allData[i] = newData[i];
     };
 };

 if (allStore !== undefined) {
   for (let i = 0; i < asLen; i++) {
     allStore[i].time > compareTime ? allData[ndLen + i] = allStore[i] : null;
   };
 };

 const res = groupedFunc(allData, ‘time’, 'distance');
 console.log('updSepStore', res.length);
 return res;
}
источник

OR

Oleg Rizhkov in ☄️ effector
а норм ли в эффекте делать throw? кейс в том, что я получаю респонс, а функция просто возвращает { res: qwe, error: qweqwe }
источник

AO

Aleksandr Osipov in ☄️ effector
Miseo
если поможет )

const updSepStore = (allStore, newData) => {
  const asLen = allStore !== undefined ? allStore.length : 0;
  const ndLen = newData !== undefined ? newData.length : 0;

  const allData = new Array(asLen + ndLen);

 const compareTime = moment().subtract(1, 'minutes').format('YYYY-MM-DD HH:mm');

 if (newData !== undefined) {
     for (let i = 0; i < ndLen; i++) {
         allData[i] = newData[i];
     };
 };

 if (allStore !== undefined) {
   for (let i = 0; i < asLen; i++) {
     allStore[i].time > compareTime ? allData[ndLen + i] = allStore[i] : null;
   };
 };

 const res = groupedFunc(allData, ‘time’, 'distance');
 console.log('updSepStore', res.length);
 return res;
}
так тут к старым данные новые и премешиваются
источник

AO

Aleksandr Osipov in ☄️ effector
Oleg Rizhkov
а норм ли в эффекте делать throw? кейс в том, что я получаю респонс, а функция просто возвращает { res: qwe, error: qweqwe }
можно конечно, тогда ошибка throw-ленная попадет в .fail
источник

AO

Aleksandr Osipov in ☄️ effector
Miseo
если поможет )

const updSepStore = (allStore, newData) => {
  const asLen = allStore !== undefined ? allStore.length : 0;
  const ndLen = newData !== undefined ? newData.length : 0;

  const allData = new Array(asLen + ndLen);

 const compareTime = moment().subtract(1, 'minutes').format('YYYY-MM-DD HH:mm');

 if (newData !== undefined) {
     for (let i = 0; i < ndLen; i++) {
         allData[i] = newData[i];
     };
 };

 if (allStore !== undefined) {
   for (let i = 0; i < asLen; i++) {
     allStore[i].time > compareTime ? allData[ndLen + i] = allStore[i] : null;
   };
 };

 const res = groupedFunc(allData, ‘time’, 'distance');
 console.log('updSepStore', res.length);
 return res;
}
в репле можете воспроизвести?
источник

AO

Aleksandr Osipov in ☄️ effector
без рабочего примера это прямо гадание
источник

M

Miseo in ☄️ effector
Aleksandr Osipov
так тут к старым данные новые и премешиваются
Да но они фильтруются. И на выходе получается как раз 23 объекта. и в вотче они тоже 23 объекта. но как только я добавляю их во второй стор получается 46.

Да. сейчас еще пару минут подумаю и попробую повторить в писочнице
источник

OR

Oleg Rizhkov in ☄️ effector
Aleksandr Osipov
можно конечно, тогда ошибка throw-ленная попадет в .fail
да, ради этого и хотел, а то я fail не мог юзать, сэмплы ломались 😅
источник

OR

Oleg Rizhkov in ☄️ effector
вот так всё же лучше.
источник

ф

фильтруй мысли... in ☄️ effector
Иван
и три сущности решают одну задачу — “реагировать на события, когда вентиль открыт"
источник

ф

фильтруй мысли... in ☄️ effector
всё-таки нужен статус ещё, чтобы не дублировать подписки
источник

DS

Dmitriy Shuleshov in ☄️ effector
createGate 🤨
источник