db.collection.find().sort({age:-1}).limit(1) // for MAX
db.collection.find().sort({age:+1}).limit(1) // for MIN
он полностью полезен, но я не уверен в производительности
@Kaiido прав, здесь resolve
вызывается в цикле for, который находится повсюду и до того, как весь код завершится. Любая ошибка после этой точки в основном теряется.
Это анти-шаблон конструктора обещаний . Вкратце: не пишите код приложения внутри конструкторов обещаний. Не передавайте функции resolve
и reject
вниз. Вместо этого позвольте функциям возвращать обещания до вас и добавьте к ним весь код приложения в then
обратных вызовов. Затем верните все обещания, чтобы они образовали единую цепочку. Только тогда ошибки распространяются правильно.
См. Использование обещаний в MDN для получения дополнительной информации.