作为node.js的工作,我有一个名为IoTCollection的集合包含一个文档
{id:1, 传感器:12 }
我需要将返回的数据存储到变量
中var my data = db.query('FOR sensor in IoTCollection return sensor.sensorType');
但它会返回待处理的承诺
我该怎么办?
提前谢谢
答案 0 :(得分:2)
你究竟是什么问题?
arangojs中的所有异步方法都会返回promise。这些promise将最终解析为服务器响应(或者在查询的情况下:具有更多异步方法的游标对象)。如果出现错误,应使用指示问题的特定错误对象拒绝承诺。
如果承诺没有得到解决或拒绝,那可能就是一个错误。
如果您不熟悉承诺,我建议您首先阅读a tutorial like David Walsh's。 promise表示函数返回时不知道的函数结果(或错误)(但最终会知道)。 Promises是去年在JavaScript中引入的新语言功能,所以我建议你习惯它们。
如果你想知道为什么arangojs有异步方法而不是完全同步(比如ArangoDB的内部JavaScript函数):Node.js(和浏览器)中的所有网络访问都是异步的,所以arangojs可以& #39; t在底层异步API之上提供同步API。要了解有关ArangoDB同步但Node是异步的原因的更多信息,我建议您查看the ArangoDB Foxx webinar。