Necesito hacer la función syncCalltest que llama a las funciones de axios secuencialmente.
¿Hay alguna forma de hacer que la función syncCallTest se ejecute secuencialmente sin modificar getPost1 getPost2 y getPost3?
function syncCallTest() { conole.log('before getPost'); getPost(); conole.log('after getPost and before getPost2'); getPost2(); conole.log('after getPost2 and before getPost3'); getPost3(); conole.log('after getPost3'); } function getPost() { axios get("http://example.com/posts/12345/") .then(reponse => { console.log(response); }) .catch(error => { console.error(error); }) } function getPost2() { axios get("http://example.com/posts/12345/") .then(reponse => { console.log(response); }) .catch(error => { console.error(error); }) } function getPost3() { axios get("http://example.com/posts/12345/") .then(reponse => { console.log(response); }) .catch(error => { console.error(error); }) }
Dado que sus llamadas son Promesa, no creo que pueda hacerlas sincrónicas.
Pero parece que lo que necesitas es tener la llamada secuencialmente, entonces esto es fácil ;)
Cambie los métodos postX para que devuelvan su promesa y luego en cascada las promesas
function syncCallTest() { getPost() .then(getPost2) .then(getPost3); } function getPost() { return axios.get("http://example.com/posts/12345/") .then(reponse => { console.log(response); }) .catch(error => { console.error(error); }) } function getPost2() { return axios.get("http://example.com/posts/12345/") .then(reponse => { console.log(response); }) .catch(error => { console.error(error); }) } function getPost3() { return axios.get("http://example.com/posts/12345/") .then(reponse => { console.log(response); }) .catch(error => { console.error(error); }) }