如何解决Arango查询承诺错误? [重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何解决Arango查询承诺错误? [重复]相关的知识,希望对你有一定的参考价值。
这个问题与以下内容完全相同:
我一直在尝试使用soap消息从Arangodb获取查询结果到我的前端服务(Angular 4)。我能够获得查询结果,但在console.log中打印出来。但是如何在此功能(服务)下获得它。
这样我就可以加入肥皂信息了:
var soap_msg = '<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:examples:CheckUserNameService">' +
'<soapenv:Header/>' +
'<soapenv:Body>' +
'<urn:CheckUserNameResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">' +
'<status xsi:type="xsd:string">' + (Service) + '</status>' +
'</urn:CheckUserNameResponse>' +
'</soapenv:Body>' +
'</soapenv:Envelope>';
我发布了这个问题得到了回复说使用await或.this(),然后我更新了我的代码,但仍然是错误。
我试图用这样的字符串输入一个随机变量来检查soap msg。
var payload = [null,"192.168.72.237"];
它工作正常。查询有问题
var Service = db.query(aqlQuery `
LET startVertex = (FOR doc IN spec
FILTER doc.serial_no == '"123456abcde"'
LIMIT 2
RETURN doc
)[0]
FOR v IN 1 ANY startVertex belongs_to
RETURN v.ip`, {
bindVar1: 'value',
bindVar2: 'value',
}).then(function(res) {
console.log("doc" + res._result);
})
版本是
- “node”:“8.9.4”
- “arangojs”:“^ 5.8.0”,
- “表达”:“^ 4.16.2”,
- “快速发电机”:“^ 4.15.5”
我没有任何线索从这里开始。
答案
为了让你解决这个问题,有必要调用游标的.all
函数,以便它返回值。
This site有一个很好的例子,简单地说:
db.query('FOR doc IN documents RETURN doc')
.then((cursor) => { return cursor.all() })
.then((doc) => { console.log(doc) });
然后调用第一步返回的promise以提取记录,从光标返回的是您正在查找的文档。
EG
var Service = db.query(aqlQuery `
LET startVertex = (FOR doc IN spec
FILTER doc.serial_no == '"123456abcde"'
LIMIT 2
RETURN doc
)[0]
FOR v IN 1 ANY startVertex belongs_to
RETURN v.ip`, {
bindVar1: 'value',
bindVar2: 'value',
}).then(function(cursor) { // Add this to return the documents in the promise
return cursor.all()
}).then(function(res) {
console.log("doc" + res._result);
})
以上是关于如何解决Arango查询承诺错误? [重复]的主要内容,如果未能解决你的问题,请参考以下文章