js高德地图InfoWindow的一个异步操作问题
在vue中引用了高德地图,用markerList渲染数据点,在getInfoWindow的时候怎么插入一个异步操作?
普通的话是这样出个弹窗:
initMarkerList() {
let _this = this;
map.clearMap();
AMapUI.loadUI(["misc/MarkerList", "overlay/SimpleInfoWindow"], function(
MarkerList,
SimpleInfoWindow
) {
var markerList = new MarkerList({
//其他代码已省略
getInfoWindow: function(data, context, recycledInfoWindow) {
let $data = data.extData;
let str = ``;
if (recycledInfoWindow) {
recycledInfoWindow.setInfoTitle($data["Name"]);
recycledInfoWindow.setInfoBody(str);
return recycledInfoWindow;
}
return new SimpleInfoWindow({
infoTitle: $data["Name"],
infoBody: str,
offset: new AMap.Pixel(0, -20)
});
}
});
markerList.render(_this.markers);
});
},
现在需要异步获取些数据,请问该如何处理?
initMarkerList() {
let _this = this;
map.clearMap();
AMapUI.loadUI(["misc/MarkerList", "overlay/SimpleInfoWindow"], function(
MarkerList,
SimpleInfoWindow
) {
var markerList = new MarkerList({
//其他代码已省略
getInfoWindow: function(data, context, recycledInfoWindow) {
let $data = data.extData;
let str = ``;
_this.$http
.post(_this.page.root + "Cleandot/QueryCleandotModel", {
ID: $data["ID"]
})
.then(data => {
str = `test`;
})
.then(() => {
//请问这里该如何返回?
if (recycledInfoWindow) {
recycledInfoWindow.setInfoTitle($data["Name"]);
recycledInfoWindow.setInfoBody(str);
return recycledInfoWindow;
}
return new SimpleInfoWindow({
infoTitle: $data["Name"],
infoBody: str,
offset: new AMap.Pixel(0, -20)
});
});
}
});
markerList.render(_this.markers);
});
},
自己异步很生疏,麻烦各位大佬指点一下
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
换了种做法,反正需求做出来就完事了
请问这个问题解决了吗?求方法