在javascript函数中使用return的问题[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我正在使用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
}
javascript function api esri
1个回答
1
投票

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

schoolLayer.queryFeatures(queryParams).then(function (results) {
    x = results.features
});

您可以在resolve-function中返回结果:

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 ...
}
© www.soinside.com 2019 - 2024. All rights reserved.