如何解决 Arango 查询承诺错误?
How to solve Arango query promise error?
我一直在尝试使用 soap 消息从 Arangodb 获取查询结果到我的前端服务 (Angular 4)。我能够获得查询结果,但在 console.log 中打印出来。但是在这个功能(Service)下怎么获取呢
这样我就可以输入肥皂消息了:
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(),然后我更新了我的代码,但错误仍然存在。
我试过用这样的字符串输入随机变量来检查肥皂味精。,
var payload = [null,"192.168.72.237"];
有效fine.There是查询问题
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",
- "express": "^4.16.2",
- "express-generator": "^4.15.5"
我不知道从这里开始。
要为您解决承诺,有必要调用游标的 .all
函数,以便它将 return 值。
This site 有一个很好的例子,它很简单:
db.query('FOR doc IN documents RETURN doc')
.then((cursor) => { return cursor.all() })
.then((doc) => { console.log(doc) });
然后调用第一步的promise return提取记录,光标处的return就是你要找的文档
例如
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);
})
我一直在尝试使用 soap 消息从 Arangodb 获取查询结果到我的前端服务 (Angular 4)。我能够获得查询结果,但在 console.log 中打印出来。但是在这个功能(Service)下怎么获取呢
这样我就可以输入肥皂消息了:
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(),然后我更新了我的代码,但错误仍然存在。
我试过用这样的字符串输入随机变量来检查肥皂味精。,
var payload = [null,"192.168.72.237"];
有效fine.There是查询问题
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",
- "express": "^4.16.2",
- "express-generator": "^4.15.5"
我不知道从这里开始。
要为您解决承诺,有必要调用游标的 .all
函数,以便它将 return 值。
This site 有一个很好的例子,它很简单:
db.query('FOR doc IN documents RETURN doc')
.then((cursor) => { return cursor.all() })
.then((doc) => { console.log(doc) });
然后调用第一步的promise return提取记录,光标处的return就是你要找的文档
例如
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);
})