проблема с 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);
    });
}
→ Ссылка