首页 / 浏览问题 / WebGIS / 问题详情
调用webGIS要素查询服务时能否用一个全局变量接收查询回调结果
40EXP 初出茅庐 2022年07月14日

调用webGIS要素查询服务时能,在回到函数中用一个全局变量接收了回调结果,但是,输出全局变量发现没有值,能否用一个全局变量接收查询回调结果呢,代码如下

 var res

        L.supermap.featureService(url_data).getFeaturesBySQL(new  SuperMap.GetFeaturesBySQLParameters({
            datasetNames:datasetName,
            queryParameter:new SuperMap.FilterParameter({attributeFilter:""}),
            toIndex:1000//最大数据量
        }),function (serviceResult) {
            res=serviceResult
        })

     console.log(res)

2 个回答

您好,我这边测试是没有问题的。

方法内变量或者方法外变量都是可以接收数据的,方法外变量的话需要定义变量在方法接收前即可。

看您截图的内容,并不是您的res没有接收到result,而是您在输出在查询前导致,您在查询后触发的事件是您的

function (serviceResult),而不是Console.log,输出放到您赋值后即可。

(执行顺序这块您可以了解下js的异步同步任务队列等这些内容。)

希望可以帮助到您。

6,152EXP 登峰造极 2022年07月15日
您好,请问您解决这个问题了吗
9EXP 2022年08月24日
解决了,用promise语法,您有更好的解决方案吗
...