我有以下代码,这些代码在Google Chrome浏览器中完美运行,但在Internet Explorer 11中却无法正常运行。我已经了解到诺言在IE中不起作用,但是任何人都可以提出建议,我应该如何更改代码才能正常工作对于两个浏览器?
function getCoords(address) {
return new Promise((resolve) => {
$.getJSON(`https://maps.googleapis.com/maps/api/geocode/json?key=mykeyhere=${address}&sensor=false`, function(data) {
resolve(data.results[0].geometry.location);
});
});
}
Promise.all([getCoords(iplan_terminal_from), getCoords(iplan_terminal_to)])
.then(route => {
var lineSymbol = {
path: 'M 0,-1 0,1',
scale: 3,
strokeOpacity: 1
};
var ferry_route_line = new google.maps.Polyline({
geodesic: true,
path: route,
strokeColor: '#357AC7',
strokeOpacity: 0,
icons: [{
icon: lineSymbol,
offset: '0',
repeat: '15px'
}]
});
ferry_route_line.setMap(map);
});
由于IE浏览器不支持Arrow function,因此,首先,我们可以将其转换为ES5。其次,由于Babel online,我们可以在页面的标题处添加以下Polyfill引用:
Promise does not support IE browser