在使用node.js时,我有一个名为IoTCollection的集合,其中包含一个文档
{id: 1,传感器: 12 }
我需要将返回的数据存储到一个变量中
var my data = db.query('FOR sensor in IoTCollection return sensor.sensorType');但是它返回一个挂起的承诺。
我该怎么办?
提前谢谢你
发布于 2016-05-02 16:41:43
你的问题到底是什么?
arangojs中的所有异步方法都返回promises。这些承诺最终将解析为服务器响应(或者在查询的情况下:具有更多异步方法的游标对象)。在出现错误的情况下,承诺应该被拒绝,并使用特定的错误对象来指示问题。
如果承诺没有得到解决或根本没有被拒绝,这很可能是一个bug。
如果你不熟悉promises,我建议你先阅读a tutorial like David Walsh's。promise表示函数返回时未知(但最终会知道)的函数结果(或错误)。Promise是去年在JavaScript中引入的一种新语言特性,因此我建议您习惯使用它们。
如果您想知道为什么arangojs有异步方法而不是完全同步(比如ArangoDB的内部JavaScript函数):Node.js中的所有网络访问(和浏览器)都是异步的,所以arangojs不能在底层异步API之上提供同步API。要更多地了解为什么ArangoDB是同步的,而Node是异步的,我建议您看看the ArangoDB Foxx webinar。
https://stackoverflow.com/questions/36965701
复制相似问题