由于不允许用户函数对数据产生副作用,我想知道是否可以从另一个函数调用一个函数。
我想分解常见的计算方法。
我看到的一种可能方式是使用
var result = db._query("RETURN myfuncs::func(@a1, @a2)",
{'@a1': 'val1', '@a2': 'val2}, null, null).next();
但如果可能,我想采用另一种方式。
答案 0 :(得分:2)
每个用户功能都是完全独立的,这意味着无法从另一个用户功能中调用用户功能。
这可能会在未来发生变化,但目前的情况是这样(ArangoDB 2.3 / 2.4 / 2.5)。
答案 1 :(得分:1)
我找到了如何做到这一点的方法。您可以在用户函数中使用db._query,即
var db = require('internal').db;
var resultFromOtherUserFunc = db._query('RETURN userFunction::MyFunction(@param)', {param: true}).toArray();