Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 17.01.2016, 22:37
Интересующийся
Отправить личное сообщение для scorpion95 Посмотреть профиль Найти все сообщения от scorpion95
 
Регистрация: 01.08.2015
Сообщений: 24

Про collection.count()
Когда прописываю в консоли mongo это, то вижу нормальное число, а когда в коде сервера

var numberLines = db.collection("users").find().count();
console.log(numberLines);


То выдает Promise ( {pending} )

Почему так? Как получить в коде сервака это число?
Ответить с цитированием
  #2 (permalink)  
Старый 17.01.2016, 23:00
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Потому, что действия в консоли выполняются синхронно и в ней можно позволить запросу заблочить поток, а node.js это асинхронная среда, в ней такое не желательно, по этому объект запроса в твоём случае возвращает Обещание
Ответить с цитированием
  #3 (permalink)  
Старый 17.01.2016, 23:04
Аватар для Safort
Профессор
Отправить личное сообщение для Safort Посмотреть профиль Найти все сообщения от Safort
 
Регистрация: 23.12.2013
Сообщений: 1,856

Кстати, ты используешь нативный драйвер для монго? На сколько я помню, он принимал коллбэк, а не возвращал Обещание.
Ответить с цитированием
  #4 (permalink)  
Старый 17.01.2016, 23:36
Интересующийся
Отправить личное сообщение для scorpion95 Посмотреть профиль Найти все сообщения от scorpion95
 
Регистрация: 01.08.2015
Сообщений: 24

Сообщение от Safort Посмотреть сообщение
Потому, что действия в консоли выполняются синхронно и в ней можно позволить запросу заблочить поток, а node.js это асинхронная среда, в ней такое не желательно, по этому объект запроса в твоём случае возвращает Обещание
Можешь навести простенький пример, как это правильно делать?
Ответить с цитированием
  #5 (permalink)  
Старый 18.01.2016, 16:40
Новичок на форуме
Отправить личное сообщение для agsh Посмотреть профиль Найти все сообщения от agsh
 
Регистрация: 05.02.2015
Сообщений: 7

Сообщение от Safort Посмотреть сообщение
Кстати, ты используешь нативный драйвер для монго? На сколько я помню, он принимал коллбэк, а не возвращал Обещание.
Начиная с (по-моему) второй версии драйвера можно callback не указывать, тогда возвращается promise
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос про сравнения san4es Javascript под браузер 4 01.04.2012 16:56
Про использование cookies zloctb Общие вопросы Javascript 3 11.02.2012 09:36
Как можно что-нибудь узнать про интерфейс чужого объекта GRIG Internet Explorer 0 09.03.2011 17:16
Что скажете про блондинку (которая ru)? Jurasmi Оффтопик 8 01.01.2011 15:14
Что можно и нужно прочитать про валидацию? Amateur Общие вопросы Javascript 5 09.03.2010 11:41