проблема с setTimeout
у меня есть функция, при вызове,программа приближается к каждому объекту на карте каждые несколько секунд, в console.log она как раз и срабатывает нужные 219 раз, но на экране приюлижается только к 1му обьекту
function Presentation(json) {
array=json.features;
array.forEach(
setTimeout(
function(item) {
mymap.flyTo([ item.geometry.coordinates[1], item.geometry.coordinates[0]],10);
},2000)
);
}
Ответы (1 шт):
Автор решения: Yugofx
→ Ссылка
У вас setTimeout(...) возвращает id таймера, которым вы можете воспользоваться для отмены таймаут-коллбека. Поэтому в forEach итератор попадает именно число - ид. Просто обертите таймер в анонимную функцию.
function Presentation(json) {
array=json.features;
array.forEach(item => {
setTimeout(() => mymap.flyTo([item.geometry.coordinates[1], item.geometry.coordinates[0]],10) ,2000);
});
}