Estoy llamando a 2 puntos finales de API REST usando Axios en NodeJS. Estoy tratando de hacer que el código se ejecute línea por línea, pero la segunda función ( viewProfile() ) no espera para generateId();
const generateId = async (data) => { const options = optionsBuilder("post","profile", data); try { const response = await axios(options); id = response.data.id; console.log(id); } catch (error) { console.error(error); } } const viewProfile = async (profileId) => { console.log('Test 2', profileId); const path = `blog/${profileId}`; const options = optionsBuilder("get", path); try { const response = await axios(options); console.log(response.data); } catch (error) { console.log(error); } } } ... generateId(data); viewProfile(profileId);Debe ejecutarlos en un ámbito asíncrono:
(async function(){ await generateId(data); await viewProfile(profileId); })() De lo contrario, no se analizan para esperar y viewProfile se ejecutará justo después de generateId . :)
Como, si está utilizando el nuevo ES2022, puede
awaital nivel superior.
Para versiones más nuevas de Node.js:
await generateId(data); await viewProfile(profileId);