在javascript函数中使用return时出现问题
我正在使用Esri ArcMap API 我做了一个函数,可以查询图层并返回结果, 我想让这个函数返回结果,以便在制作小部件时使用它在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
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 ...
}
不,第一个不行。