Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript函数中使用return时出现问题_Javascript_Function_Api_Esri - Fatal编程技术网

在javascript函数中使用return时出现问题

在javascript函数中使用return时出现问题,javascript,function,api,esri,Javascript,Function,Api,Esri,我正在使用Esri ArcMap API 我做了一个函数,可以查询图层并返回结果, 我想让这个函数返回结果,以便在制作小部件时使用它 function queryLayer(filterType,value){ var x schoolLayer.definitionExpression = filterType+" = '" + value + "'"; const queryParams = schoolLayer.createQuery(); que

我正在使用Esri ArcMap API 我做了一个函数,可以查询图层并返回结果, 我想让这个函数返回结果,以便在制作小部件时使用它

function queryLayer(filterType,value){

    var x 

    schoolLayer.definitionExpression = filterType+" = '" + value + "'";

    const queryParams = schoolLayer.createQuery();
    queryParams.where =  filterType +" = '" + value + "'";
    queryParams.outFields = [filterType]
    schoolLayer.queryFeatures(queryParams).then(function (results) {

        x = results.features
    });
   return x
}

这是一个承诺,承诺是异步的

schoolLayer.queryFeatures(queryParams).then(function (results) {
    x = results.features
});
您可以在resolve函数中返回结果:

function queryLayer(filterType,value){
    schoolLayer.definitionExpression = filterType+" = '" + value + "'";
    const queryParams = schoolLayer.createQuery();
    queryParams.where =  filterType +" = '" + value + "'";
    queryParams.outFields = [filterType]
    schoolLayer.queryFeatures(queryParams).then(function (results) {
        return results.features;
    });
}

如果这不起作用,您可以退还全部承诺:

function queryLayer(filterType,value){
    schoolLayer.definitionExpression = filterType+" = '" + value + "'";
    const queryParams = schoolLayer.createQuery();
    queryParams.where =  filterType +" = '" + value + "'";
    queryParams.outFields = [filterType]
    return schoolLayer.queryFeatures(queryParams);
}
然后像这样使用它:

queryLayer(filterType,value).then(funtction(response){
    // do whatever you want to do with your Response ...
}

不,第一个不行。