Приветствую. Задачка следующая: в геттере свойства класса подгружать данные по сети. Зачем? Это вопрос удобства, который пока что носит экспериментальный характер с целью погрузиться в тонкости node.js. Меня сейчас интересуют не обязательно правильные проверенные методы решения - подойдут любые рабочие костыли. Но сразу оговорю несколько уже известных.
1. Синхронный запрос - не вариант, потому что бедняга event loop уснёт до возвращения ответа.
2. async/await - было бы здорово, если бы эта парочка здесь себя проявляла, но в этом случае геттер будет возвращать промис, когда должен возвращать значение.
3. Многопоточность с приостановкой потока из главного процесса - пока что самый привлекательный вариант, если не брать в расчёт нагрузку неограниченного количества потоков. Хотя она, в принципе, решается пулом, но так создаются дополнительные барьеры на количество одновременных запросов.
В идеале хотелось бы как-то ставить заглушку в этой функции, как это делает yield, чтобы по возвращении ловить event loop и продолжать с того же места в одном потоке. Но именно этот оператор в геттере пользы не принесёт.
Антон Л: да всё просто. Мы приходим к синхронным запросам из множества потоков - по одному на каждого пользователя. В идеале хотелось бы как-то ставить заглушку в этой функции, как это делает yield, чтобы по возвращении ловить event loop и продолжать с того же места в одном потоке. Но именно этот оператор в геттере пользы не принесёт.