如何从forTime循环内的setTimeout函数返回数组?

时间:2019-03-28 14:04:51

标签: javascript arrays mapbox

我正在努力在MAPBOX上添加geoJSON多边形。我的目标是每1秒钟将多边形减少一侧。现在,我正在尝试从forTime循环中的setTimeout函数返回一个数组数组,该数组会向其提供错误消息Error {{message:“输入数据不是有效的GeoJSON对象。”}。

myArray = [[-67.13734351262877, 45.137451890638886],
[-66.96466, 44.8097],
[-68.03252, 44.3252]
];


tempArr = myArray.concat();
len = tempArr.length;

function myVar() {
    // body...
    for (let i = len; i>0;i--){

        setTimeout( function () {
            return tempArr;
        },1000);

        tempArr.length = tempArr.length-1;
     }
}

map.addLayer({
'id': 'maine',
'type': 'fill',
'source': {
'type': 'geojson',
'data': {
'type': 'Feature',
'geometry': {
'type': 'Polygon',
'coordinates': [myVar()]
}
}
})

我想要达到的目标是这样的-

map.addLayer({
'id': 'maine',
'type': 'fill',
'source': {
'type': 'geojson',
'data': {
'type': 'Feature',
'geometry': {
'type': 'Polygon',
'coordinates': [[[-67.13734351262877, 45.137451890638886],
[-66.96466, 44.8097],
[-68.03252, 44.3252]]]
}
}
})

0 个答案:

没有答案