Size: a a a

JavaScript Noobs — сообщество новичков

2020 August 05

j

jk in JavaScript Noobs — сообщество новичков
Ivan Bobchenkov
Чтобы и у той группы, и у той удалились все слушатели после выполнения?
Нет.

if (events) {
 // Если это выполняется
} else if (eventsOnce) {
 // То это не выполняется
}
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
jk
Нет.

if (events) {
 // Если это выполняется
} else if (eventsOnce) {
 // То это не выполняется
}
Ай ля
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
Косяк
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
Спасибо
источник

KP

Kotan 🐱 Pupkin in JavaScript Noobs — сообщество новичков
ещё в задаче не описано, как быть, если перед тем, как вызвать emit, добавить один и тот же ивент два раза, но один раз используя on, другой once

Например:
const emitter = new BroadcastEventEmitter();
emitter.on('foo', () => {
 console.log('foo');
});
emitter.once('foo', () => {
 console.log('once foo');
});

emitter.emit('foo'); // Will trigger both callbacks
источник

KP

Kotan 🐱 Pupkin in JavaScript Noobs — сообщество новичков
может это и фича, конечно, но можно кинуть ошибку, если юзер пытается добавить ивент в once/on, а он уже есть в on/once.
источник

KP

Kotan 🐱 Pupkin in JavaScript Noobs — сообщество новичков
а, хотя, и такое поведение нормально. Я думал, что на каждый вызов on предыдущий колбэк перезаписывается.
источник

j

jk in JavaScript Noobs — сообщество новичков
Kotan 🐱 Pupkin
может это и фича, конечно, но можно кинуть ошибку, если юзер пытается добавить ивент в once/on, а он уже есть в on/once.
В каких-то реализациях есть проверка на дубликаты, в каких-то нет. У нас тут получилось половинчатое решение. В основном создаются объекты вида { listener: fn, once: true/false } и пушится в единый массив. Set нигде не используется.
источник

j

jk in JavaScript Noobs — сообщество новичков
Это к сообщению выше. Ошибки никакие не кидают.
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
jk
Это к сообщению выше. Ошибки никакие не кидают.
По факту я так тоже думал, но с Set мне кажется более кашерное решение, что-ли
источник

AP

Anton Permyakov in JavaScript Noobs — сообщество новичков
Kotan 🐱 Pupkin
ещё в задаче не описано, как быть, если перед тем, как вызвать emit, добавить один и тот же ивент два раза, но один раз используя on, другой once

Например:
const emitter = new BroadcastEventEmitter();
emitter.on('foo', () => {
 console.log('foo');
});
emitter.once('foo', () => {
 console.log('once foo');
});

emitter.emit('foo'); // Will trigger both callbacks
эвенты одинаковые, а обработчики-то разные, поэтому должны сработать оба
источник

j

jk in JavaScript Noobs — сообщество новичков
источник

IB

Ivan Bobchenkov in JavaScript Noobs — сообщество новичков
Последний - реально сверх разум, это как odd и even библиотеки :D
источник

KP

Kotan 🐱 Pupkin in JavaScript Noobs — сообщество новичков
под event-emitter из этого чата можно сделать репу EventEmitter4
источник

OT

Oruj Tatiyev in JavaScript Noobs — сообщество новичков
должны ли файлы которые в гитигноре попадаться в список отслеживаемых при git add .
источник

CM

Chingiz Mamiyev in JavaScript Noobs — сообщество новичков
Oruj Tatiyev
должны ли файлы которые в гитигноре попадаться в список отслеживаемых при git add .
-
источник

OT

Oruj Tatiyev in JavaScript Noobs — сообщество новичков
то есть не должны. ок спасибо. я тоже так думал. сорян не по теме
источник

j

jk in JavaScript Noobs — сообщество новичков
источник

ГЩ

Глеб Щукин in JavaScript Noobs — сообщество новичков
аж интересно стало, что же там за задача была
источник

PT

Plot Twist in JavaScript Noobs — сообщество новичков
источник