'How to call sequentially axios functions without callback

I need to make function syncCalltest which call axios functions sequentially.
Is there any way to make syncCallTest function run sequentially without modifying getPost1 getPost2 and 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);
    })
}



Solution 1:[1]

Since your calls are Promise, I dont think you can make then synchronous.

But it seems that what you need is to have the call sequentially, then this is easy ;)

Change the postX methods so that they return their promise and then cascade the promises

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);
    })
}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Ji aSH