js函数嵌套取值问题
请教各位大神,我在vue开发中遇到,主函数无法取到子函数里面的值的问题。
eMap.prototype.rangeDraw = function(origin, radius, onComplete) {
var o = {};
esriLoader.loadModules(["esri/geometry/Polyline","esri/SpatialReference","esri/geometry/Point","esri/geometry/Circle"],eMap.prototype.options).then(
([Polyline,SpatialReference,Point,Circle]) => {
var map = this.map;
var rangeStyle = {
strokeColor : "#0000CD",
strokeOpacity : 0.5,
strokeWeight : 1,
strokeWidth:1,
pointerEvents : "visiblePainted",
fillColor : "#1C86EE",
fillOpacity : 0.1,
pointRadius : 4
};
var spatialReference=new SpatialReference (eMap.prototype.spatialReference);
this.clearGraphic();
//this.removeLayer(drawLayerName);
var pt=new Point(origin.x,origin.y,spatialReference);
var circleGeometry =new Circle(pt,{
"radius":radius
});
var circleLine=new Polyline(spatialReference);
circleLine.addPath(circleGeometry.rings[0]);
circleGeometry.spatialReference=spatialReference;
const circleGraphic=this.getGraphic(circleLine,rangeStyle);
//this.map.graphics.add(circleGraphic);
var geometry = this.toMyGeometry(circleGeometry);
//var geoStr = "POLYGON(";
o.geoStrTemp="";
for(var k=0;k<geometry.points.length;k++){
o.geoStrTemp=o.geoStrTemp+geometry.points[k].x+" "+geometry.points[k].y+","
}
o.geoStrTemp="POLYGON("+o.geoStrTemp+")";
//console.log("geometrys11111_______________:"+geoStrTemp);
//geoStrTemp1=geoStrTemp;
var promise=new Promise(function (resolve,reject){
resolve(o.geoStrTemp);
})
geometry.style = rangeStyle;
var geometrys = [];
geometrys.push(geometry);
eMap.prototype.showGeometryLayer(this.drawLayerName,geometrys)
this.locator(circleGeometry);
this.addMarker(origin);
if(onComplete){
onComplete(radius,radius,circleGeometry);
}
return o;
}
).catch(err => {
// handle any script or module loading errors
console.error(err);
});
//o.then(res => { console.log("cs_________________"+res.geoStrTemp) })
console.log("geoStrTemp1______________:"+o.geoStrTemp);//这里无法拿到值,请教有没有解决办法。
return o;
};