这个问题在这里已有答案:
我正在使用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中返回结果:
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 ...
}