Estoy tratando de obtener datos cada vez que el usuario escribe algo (usando useEffect para eso), también quiero retrasar la función de recuperación usando setTimeout, de modo que cuando el usuario deje de escribir, debe esperar 3 segundos y luego buscar los perfiles de github, pero cuando escriba vamos diga "giorgi", después de 3 segundos en lugar de obtener solo los perfiles "giorgi", espera 3 segundos para pasar por todas las búsquedas anteriores, primero muestra rápidamente los perfiles que contienen gi, luego gio, luego gior, etc. y finalmente solo los perfiles de giorgi. Creo que estoy haciendo algo mal en la función settimeout o no la estoy usando bien.
useEffect(() => { const getSearchedProfile = async (searchValue) => { const api_url = 'https://api.github.com/search/users?q='+searchValue+'+in:login&per_page=20'; const fetchProfile = await fetch(api_url); const profile = await fetchProfile.json(); setProfiles(profile.items); } const getPoPularProfile = async () => { const api_url = 'https://api.github.com/search/users?q=repos:followers:%3E35000&language:javascript&page=1&per_page=10'; const fetchProfile = await fetch(api_url); const profile = await fetchProfile.json(); setProfiles(profile.items); } if(searchValue !== ''){ setTimeout(() => { getSearchedProfile(searchValue); setShow(true); }, 3000); } if(searchValue === ''){ setTimeout(() => { getPoPularProfile(); setShow(false); }, 3000); } }, [searchValue])