Axios multiple then's

So I have a problem, I want so that this Axios returns me second then, and it doesn't work, and I can't understand why. So this second then returns me undefined, but I wanted to get ID from that or any data, any suggestions? I checked some other posts, they seemed to have the same writing, but for me it just doesn't work, help pls:)

If you want to check Axios, at the end write ?q=Grimm (for example). So the full page is: https://api.tvmaze.com/singlesearch/shows?q=Grimm

      .get('https://api.tvmaze.com/singlesearch/shows', {
        params: {
          q: id,
        },
      })
      .then((res) => setOneShow([res.data]))
      .then((res) => console.log(res));

Solution 1:

In a .then() chain, the second then block gets data returned from the first then block.

In your case, to get the same data in the second then block, alter your code as:

  axios.get("https://api.tvmaze.com/singlesearch/shows", {
        params: {
          q: id
        }
      })
      .then((res) => {
        console.log("1", res);
        return res;
      })
      .then((res) => console.log("2", res));
  }

Solution 2:

Check this lessons: Arrow Functions, Promises. You are calling and returning setOneShow() in your first .then() method, not res. How it should looks like:

axios.get('https://api.tvmaze.com/singlesearch/shows', {
   params: {
     q: id,
   },
 })
 .then((res) => {
   setOneShow([res.data]);
   return res;
 })
 .then((res) => {
   console.log(res);
 });