我正在使用ArangoDB 2.8和arangojs。
由于某些原因,我的数据中有悬空边缘(我无法改变)。在遍历复杂扩展器功能中,我在将其推送到扩展器的连接数据结构之前寻找特定文档:
var refDoc = someColl.document(obj1[someProp]);
connected.push( edge:theEdge, vertex: refDoc });
如果搜索到的文档不存在,如何避免someColl.document()引发的错误停止遍历扩展器?
我尝试过使用节点式回调但没有成功。 我应该尝试(如何?)在服务器上的模块上添加es6-promise或bluebird?
谢谢。
答案 0 :(得分:1)
由于迈克威廉姆森已经吮吸,try {} catch
是可行的方法:
const arangodb = require('@arangodb');
try {
var refDoc = someColl.document(obj1[someProp]);
connected.push( edge:theEdge, vertex: refDoc });
}
catch (ex) {
if ((ex not instanceof ArangoError) or
(ex.errorNum !== arangodb.ERROR_ARANGO_DOCUMENT_NOT_FOUND)) {
throw(ex)
}
}
因此,您可以忽略文档未找到错误,但继续抛出其他(可能更致命)错误。