este es mi objeto
[0 … 200] 0: {id: 2291798516830927, url: '.....', address: 'new', symbol: '1t43', fav: false} 1: {id: 7337710716729779, url: '.....', address: 'new', symbol: 'gf23525', fav: false} 2: {id: 6962996031953837, url: '.....', address: 'old', symbol: '435234', fav: false} 3: {id: 8456218226475281, url: '.....', address: 'old', symbol: '2345', fav: false} 4: {id: 6759748921116029, url: '.....', address: 'new', symbol: '$B2345ROKE', fav: false} ... address="new" bookmarks.map(function (bookmark, index) { setTimeout(() => { if (bookmark.address == address) { console.log(bookmark.symbol) } }, 1000 * index) })Lo que quiero hacer es omitir todas las direcciones "antiguas" en mi objeto y continuar con el mapeo. Debe haber un tiempo de espera de 2 segundos si es posible entre cada ciclo.
si uso Timeout con valor " 1000 * index " después de los dos primeros objetos, tengo que esperar varios minutos antes de que se reanude el ciclo, no me queda claro por qué.
si uso el tiempo de espera sin con " 1000 " sin " index " el tiempo de espera no funciona, el objeto se imprime completamente sin tiempo de espera
Filtraría y no usaría el mapa. Nunca use un mapa cuando se refiera a forEach y no necesite el mapa de matriz que está creando.
Podemos usar setTimeout o setInterval y borrar el intervalo cuando cnt === list.length
const bookmarks = [ {id: 2291798516830927, url: '.....', address: 'new', symbol: '1t43', fav: false}, {id: 7337710716729779, url: '.....', address: 'new', symbol: 'gf23525', fav: false}, {id: 6962996031953837, url: '.....', address: 'old', symbol: '435234', fav: false}, {id: 8456218226475281, url: '.....', address: 'old', symbol: '2345', fav: false}, {id: 6759748921116029, url: '.....', address: 'new', symbol: '$B2345ROKE', fav: false} ]; const addr="new"; const list = bookmarks.filter(({address}) => address === addr); let cnt = 0; const show = () => { if (cnt >= list.length) return; // stop the listing console.log(list[cnt].symbol); cnt++; setTimeout(show,2000); // next one }; show()