Size: a a a

2020 June 06

P

Paruyr🛸🪐🌏 in ☄️ effector
Вопрос по withRegion
const store = createStore()
const ev = createEvent()
withRegion(ev, () => {
 store.watch(() => {})
})
clearNode(ev)

watch будет уничтожен?
источник

AO

Aleksandr Osipov in ☄️ effector
Да
источник

AO

Aleksandr Osipov in ☄️ effector
Будут удалены все связи созданные внутри колбека withRegion, при вызове clearNode для соответствующего юнита
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
Мне нужно в вотчере добавить обработчики на определенный объект, а при отписке удалять обработчики
Как это правильно можно сделать?
источник

AO

Aleksandr Osipov in ☄️ effector
Watch возвращён объект с отпиской
источник

AO

Aleksandr Osipov in ☄️ effector
unwatch = something.watch(...)
источник

AO

Aleksandr Osipov in ☄️ effector
Хотя я не уверен что это то что вам надо, не совсем ваш кейс понял
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
unit.watch(callback => {
 addEventListener(‘event, event)
})

Куда запихнуть removeEventListener ? )
источник

AO

Aleksandr Osipov in ☄️ effector
Ох, никак, как мне видится. Надо пересмотреть сам подход к задаче думаю.
источник

AO

Aleksandr Osipov in ☄️ effector
Paruyr🛸🪐🌏
Мне нужно в вотчере добавить обработчики на определенный объект, а при отписке удалять обработчики
Как это правильно можно сделать?
А что значит при отписке в данном случае?
источник

AO

Aleksandr Osipov in ☄️ effector
Может вы целиком задачу опишете и можно будет рассмотреть какие-то альтернативы
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
Кейс вот какой
На проекте подключен socket.io
Хочется как с Rxjs fromEvent, что бы я получил поток сообщений по событию из socketio, а при отписке от потоков удалялись обработчики из socket io
источник

AO

Aleksandr Osipov in ☄️ effector
Я просто не совсем поднимаю все ещё, что вы под отпиской понимаете? В контексте эффектора
источник

AO

Aleksandr Osipov in ☄️ effector
Paruyr🛸🪐🌏
Кейс вот какой
На проекте подключен socket.io
Хочется как с Rxjs fromEvent, что бы я получил поток сообщений по событию из socketio, а при отписке от потоков удалялись обработчики из socket io
Эффектор сильно отличается от rx, тут нет потоков
источник

R

Rafael 🦠 in ☄️ effector
https://github.com/zerobias/effector/blob/master/src/effector/fork.js#L231
что тут передается первым аргументом?
просто какой-то ивент или ивент, которй привязан к домену, который передается в скоп?
источник

AO

Aleksandr Osipov in ☄️ effector
Событие например
источник

AO

Aleksandr Osipov in ☄️ effector
Обычно событие
источник

AO

Aleksandr Osipov in ☄️ effector
источник

AO

Aleksandr Osipov in ☄️ effector
Вам не для ssr вроде это, но суть одна
источник

P

Paruyr🛸🪐🌏 in ☄️ effector
ВОт сниппет:
export function listen<T>(channel: string, event: string): Event<T> {
 const messages = echo.createEvent<T>();

 withRegion(messages, () => {
   $socket.watch(socket => {
     if (socket) {
       socket.on(event, (gotChannel: string, payload: any) => {
         if (gotChannel === channel) {
           messages(payload);
         }
       });
     }
   });
 });

 return messages;
}


хочу что бы на clearNode(messages) вызывался socket.off
источник