ZloyDyadka: в принципе можно и 2, в setTimeout можно хранить только _id резерва, а нужные данные вытягивать по срабатыванию просрочки, чтобы не занимать память. Чтобы при падении сервера не потерять данные, храните все активные пары ключ-время просрочки в базе в отдельной коллекции. При перезапуске считывайте их оттуда, по завершению работы с резервом - удаляйте.
Евгений Петров: с тех пор, что является стандартным транспортом передачи объектов между связкой клиент-сервер или клиент-вебворкер. Вот захочешь ты этот "массив" обработать параллельно в соседнем потоке, а при передаче в поток ты получишь неожиданно обычный объект. Или отправишь ajax-ом серверу, а он тоже получит объект. Сначала твой "массив" придется преобразовать в массив (уже без кавычек) с помощью Array.from (или через map). Но как же мы узнаем, что это "массив", а не массив, если твой getType возвращает нам тип массив :)
Евгений Петров: но ведь JSON.stringify вернет именно объект, и потому при передачи его за пределы VM (или даже просто в соседней webworker), ты получишь {} (причем с полем length, если ты использовал методы массива) :)
Анна Бакурова: если вас интересуют именно ошибки, то можете обернуть конструктор Error и внутри обертки выводить текст и стек ошибки куда вам надо еще (например, рисовать прямо на экран).
Дима Турков: такой вариант ответа называется "русский форум".
Я думаю, человек и сам умеет пользоваться поиском, но спросил помощи у живых людей, как более релевантных источников информации по обучению. Гугль не дает оценки эффективности и правильности данных по ссылкам, сомнительный способ для поиска "учебных материалов".
NicoBurno: Да, только метод bind возвращает функцию с привязанным контекстом, т.ч. результат надо присваивать какой-то переменной (этим мой пример отличается от вашего).