He estado trabajando con una API de stock durante los últimos uno o dos días, y estoy tratando de crear un motor de búsqueda con un método de filtro. Funciona, pero puede ser lento porque la respuesta inicial de obtención de API es una matriz de aproximadamente 28,000 índices. ¿Hay alguna manera de limitar la respuesta que obtengo? Busqué en la documentación y no parece haber una solución a través del enlace en sí. ¡Cualquier ayuda sería apreciada!
input.addEventListener('keyup', (e) => { const searchString = e.target.value.toLowerCase(); const filteredCompanies = stockCompanies.filter((company) => { return ( company.description.toLowerCase().includes(searchString) || company.displaySymbol.toLowerCase().includes(searchString) ); }); displayCompanies(filteredCompanies); }); const loadCompanies = async () => { try { const res = await fetch(`https://finnhub.io/api/v1/stock/symbol?exchange=US&token=${apiKey}`); stockCompanies = await res.json(); displayCompanies(stockCompanies); }catch (err) { console.error(err); } }; const displayCompanies = (data) => { var dynamic = []; for (var i = 0; i < data.length; i++){ dynamic.push(` <div class="listings_card"> <h1>${data[i].description}</h1> <p>${data[i].displaySymbol}</p> </div>`); } document.querySelector('.listings').innerHTML = dynamic.join(''); }; loadCompanies();Si api no es compatible con la función, no puede hacerlo. Pero puede eliminar la lista después de recibir la respuesta. Prueba de esta manera:
const loadCompanies = async () => { try { const res = await fetch(`https://finnhub.io/api/v1/stock/symbol?exchange=US&token=${apiKey}`); const res_data = await res.json(); stockCompanies = res_data.slice(0, 50) displayCompanies(stockCompanies); } catch (err) { console.error(err); } };