我已经广泛地环顾四周,找不到任何有关如何使用node.js内marklogic模块的查询结果的示例...
大多数示例都会执行结果的console.log(),但是如果我需要查询结果(例如在JSON数组中使用,以后再使用这些结果呢?
似乎我在这里缺少一些node.js临时工作...
范例:
var marklogic = require('marklogic');
var my = require('./my-connection.js');
var db = marklogic.createDatabaseClient(my.connInfo);
var qb = marklogic.queryBuilder;
db.documents.query(
qb.where(qb.parsedFrom('oslo'))
).result( function(results) {
console.log(JSON.stringify(results, null, 2));
});
// I would like to use the results here
// console.log(JSON.stringify(results, null, 2))
现在的问题是,我想稍后在此脚本中使用结果对象。我尝试使用.then()
,或将其传递给变量并返回该变量,但没有运气。
问候,
雨果
简单的答案:您需要从result()
回调中继续您的业务逻辑。
详细地说,你的目标是做什么用的异步计算或请求的结果。由于JS没有本地异步功能(例如线程),因此回调通常用于异步地恢复操作。要实现的最重要的事情是,您不能return
获得异步计算或请求的结果,但是必须在完成后恢复控制流。定义许多功能可以帮助使此类代码更易于阅读和理解。
这个例子说明了正在发生的事情:
process.nextTick(function() {
console.log('second')
})
console.log('first')
该程序将记录first
,然后second
,因为process.nextTick()
异步调用提供给它的回调函数(在事件循环的下一轮)。
我如何开始使用Node.js的答案提供了很多资源,可以更好地理解Node.js的异步编程。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句