хранить данные в переменной arangojs

поскольку работаю над node.js, у меня есть коллекция под названием IoTCollection, содержащая один документ

{идентификатор: 1, датчик: 12}

Мне нужно сохранить возвращенные данные в переменную

var my data = db.query('FOR sensor in IoTCollection return sensor.sensorType');

но он возвращает ожидающее обещание

Как мне поступить?

заранее спасибо


person Slyfer    schedule 01.05.2016    source источник
comment
Ответ сработал для вас? если да, можете ли вы отметить его как «принятый»? Если нет, то чего не хватает?   -  person dothebart    schedule 14.07.2016


Ответы (1)


В чем именно заключается ваш вопрос?

Все асинхронные методы в arangojs возвращают промисы. Эти промисы в конечном итоге разрешатся в ответ сервера (или, в случае запросов: объект курсора с дополнительными асинхронными методами). В случае ошибки обещания должны быть отклонены с конкретным объектом ошибки, указывающим на проблему.

Если промис не решается или вообще не отклоняется, скорее всего, это ошибка.

Если вы не знакомы с промисами, я рекомендую сначала прочитать учебник, например, Дэвида Уолша. Обещание представляет собой результат функции (или ошибку), который неизвестен в момент возврата функции (но в конечном итоге станет известен). Обещания — это новая языковая функция, представленная в JavaScript в прошлом году, поэтому я рекомендую вам привыкнуть к ней.

Если вам интересно, почему у arangojs есть асинхронные методы, а не полностью синхронные (как внутренние функции JavaScript ArangoDB): весь доступ к сети в Node.js (и браузере) является асинхронным, поэтому arangojs не может предоставить синхронный API поверх базовый асинхронный API. Чтобы узнать больше о том, почему ArangoDB синхронизирована, а Node асинхронна, я рекомендую взглянуть на веб-семинар ArangoDB Foxx. .

person Alan Plum    schedule 02.05.2016
comment
Спасибо, что просветили меня! я понимаю - person Slyfer; 02.05.2016
comment
@Slyfer, если это отвечает на вопрос, не могли бы вы пометить мой ответ как принятый, чтобы этот вопрос больше не отображался как оставшийся без ответа? В противном случае, можете ли вы сказать мне, чего не хватает, или чем еще я могу вам помочь? - person Alan Plum; 03.05.2016