Tile38靠近查询节点callback函数不起作用

我正在构build一个小型的GEO应用程序,它使用http://tile38.com/和https://www.npmjs.com/package/tile38节点模块。 一切工作正常,但我无法从节点模块的NEARBY查询结果。 它看起来像callback函数不工作,我花了很多时间,但找不到出路。 我想要的是从附近的查询得到的结果,并分配给一个variables。

这里是代码:

var Tile38 = require('tile38'); var client = new Tile38({host: 'localhost', port: 9851, debug: true }); // set a simple lat/lng coordinate client.set('fleet', 'truck1', [33.5123, -112.2693]) // set with additional fields client.nearbyQuery('fleet').distance().point(33.5123, -112.2693, 6000).execute((err, results) => { console.log("########"); // this callback will be called multiple times if (err) { console.error("something went wrong! " + err); } else { console.log(results + "##########"); } });; 

但是当我尝试以下简单的查询它工作正常。

 client.get('fleet', 'truck1').then(data => { console.log(data); // prints coordinates in geoJSON format }).catch(err => { console.log(err); // id not found }); 

此外,当我尝试在tile38-cli的RAW查询它工作正常。

 NEARBY fleet POINT 33.5123 -112.2693 6000 

任何帮助将不胜感激。

提前致谢。

编辑我也试过以下但没有工作。

 let query = client.nearbyQuery('fleet').distance().point(33.5123, -112.2693, 6000) query.execute(function(results).then(results => { console.dir(results); // results is an object. })) 

收到以下错误

 query.execute(function(results).then(results => { ^ SyntaxError: Unexpected token . 

这里是Tile38的节点库的作者。 对不起,这个工作很麻烦。 我注意到自述中的一个错字,可能会把你扔掉。 我会纠正这一点。

execute()方法返回一个Promise,并且(正如你已经想到的那样)这个例子应该说明了

 query.execute().then(results => { console.dir(results); }); 

代替

 query.execute(function(results).then(results => { console.dir(results); }); 

经过长时间的debugging,我发现下面的代码正在工作:

 let query = client.nearbyQuery('fleet').distance().point(33.5123, -112.2693, 6000) query.execute().then(data => { console.dir(results); // results is an object. }))