Size: a a a

Node.js — русскоговорящее сообщество

2021 January 16

N

Nikita in Node.js — русскоговорящее сообщество
можно сделать функцию которая будет создавать экземпляр класса, по типу:

const a1 = makeNewA();

a1() - возвращает экземпляр класса
a1().dispose()
a1() - теперь undefined
источник

N

Nikita in Node.js — русскоговорящее сообщество
но это тоже костыль))
источник

N

Nikita in Node.js — русскоговорящее сообщество
разве подключай какой-то babel или что то еще чтобы после прогона вставлял нужные конструкции в код
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
Я в принципе так и поступаю:
> this.requestId = null;
> get request() { return LobbyRequest.findById(this.requestId); }
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
static findById(id) {
   return LobbyRequest.pool.find(v => v.id === id)
 }

А т.к. после диспоуза уже нет в пуле, так он его и не возвращает.
источник

N

Nikita in Node.js — русскоговорящее сообщество
HOUGAN
Я в принципе так и поступаю:
> this.requestId = null;
> get request() { return LobbyRequest.findById(this.requestId); }
а можешь подсказать зачем тебе вся эта возня с временем жизни объекта на классах?
источник

N

Nikita in Node.js — русскоговорящее сообщество
может можно по другом изначально решить задачу?
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
Временные заявки на подключение к лобби, которые создаются, и их можно просмотреть.
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
Я в принципе как правило использую везде такой подход, например все пользователи прочитанные из бд пишутся в User.pool, а метод который ищет пользователя ориентируется сначала на User.pool, а уже потом на поиск в БД.
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
Но например когда сокет отключается, я выгружаю его из пула, дабы не забивать ОЗУ.
источник

N

Nikita in Node.js — русскоговорящее сообщество
HOUGAN
Я в принципе как правило использую везде такой подход, например все пользователи прочитанные из бд пишутся в User.pool, а метод который ищет пользователя ориентируется сначала на User.pool, а уже потом на поиск в БД.
это типа кэширование такое или что?
источник

N

Nikita in Node.js — русскоговорящее сообщество
что то вроде unit of work если не ошибаюсь
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
Очень условно, но я понимаю, что ссылки на этот объект из пулла (т.е. на сам объект) остались ещё в 10 насранными ими объектами (типо лобби, заявок и прочего)
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
Я хз, я самоучка, я сам себе его придумал и им оперирую
источник

N

Nikita in Node.js — русскоговорящее сообщество
HOUGAN
Очень условно, но я понимаю, что ссылки на этот объект из пулла (т.е. на сам объект) остались ещё в 10 насранными ими объектами (типо лобби, заявок и прочего)
так разве GC не почистит их потом тебе?
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
GC чистит когда кол-во ссылок на объект станет нулю
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
А т.к. ссылки на него висят в других классах - он остаётся жить
источник

N

Nikita in Node.js — русскоговорящее сообщество
потому что ссылки на классы висят в классах которые в пулах, которые ты же сам сделал)
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
Ну вообще, у меня логично все работает. Если пользователь выходит, то его удаляет из пулла. А т.к. удалился юзер - заявка тоже из пулла удаляется.
источник

H

HOUGAN in Node.js — русскоговорящее сообщество
Но мне приходится вручную всё это контролировать, примерно так, как ты сказал
источник