如何从Axios外部Axios函数返回值

发布于 2025-02-13 05:05:59 字数 1019 浏览 0 评论 0原文

我有一个路由器。get呼叫另一个函数,这样的函数是:

router.get("/", (req, res) => {
  const data = especiaisTest.getEspeciais();
  console.log(data);
});

呼叫的函数是一个:

function getEspeciais() {
  db.query(async (tokenResponse) => {
    try {
      const response = await axios.get(URL, {
        headers: {
          Authorization: `Bearer ${tokenResponse.accessToken}`,
        },
      });

      return response.data;
    } catch (error) {
      console.error(error);
    }
  });
}

每当我称呼它时,我只会得到控制台。

我尝试在 db.query 函数之外返回一个值:

function getEspeciais() {
  db.query(async (tokenResponse) => {
    try {
      const response = await axios.get(URL, {
        headers: {
          Authorization: `Bearer ${tokenResponse.accessToken}`,
        },
      });

      return response.data;
    } catch (error) {
      console.error(error);
    }
      });
      return 'hello'
    }

它将在控制台中显示“ Hello”。如何从db.query中获得响应。data才能显示数据?

I have a router.get which calls another function, like this:

router.get("/", (req, res) => {
  const data = especiaisTest.getEspeciais();
  console.log(data);
});

The function which is calling is this one:

function getEspeciais() {
  db.query(async (tokenResponse) => {
    try {
      const response = await axios.get(URL, {
        headers: {
          Authorization: `Bearer ${tokenResponse.accessToken}`,
        },
      });

      return response.data;
    } catch (error) {
      console.error(error);
    }
  });
}

Whenever i call it, I just get console.logged an undefined.

I tried returning a value outside the db.query function, for example:

function getEspeciais() {
  db.query(async (tokenResponse) => {
    try {
      const response = await axios.get(URL, {
        headers: {
          Authorization: `Bearer ${tokenResponse.accessToken}`,
        },
      });

      return response.data;
    } catch (error) {
      console.error(error);
    }
      });
      return 'hello'
    }

And it will display the 'hello' in the console. How can I get the response.data out of the db.query in order to be able to show the data?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

千紇 2025-02-20 05:05:59

问题代码。


router.get("/", (req, res) => {
  const data = especiaisTest.getEspeciais();
  console.log(data);
});


function getEspeciais() {
  db.query(async (tokenResponse) => {
    try {
      const response = await axios.get(URL, {
        headers: {
          Authorization: `Bearer ${tokenResponse.accessToken}`,
        },
      });

      return response.data;
    } catch (error) {
      console.error(error);
    }
  });
}

应该是:

router.get("/", async (req, res) => {
  const data = await especiaisTest.getEspeciais();

async function getEspeciais() {
  return db.query(async (tokenResponse) => {

那么您会看到其他东西而不是未定义。
如果返回未定义,则 db.query 方法没有返回。

Question codes.


router.get("/", (req, res) => {
  const data = especiaisTest.getEspeciais();
  console.log(data);
});


function getEspeciais() {
  db.query(async (tokenResponse) => {
    try {
      const response = await axios.get(URL, {
        headers: {
          Authorization: `Bearer ${tokenResponse.accessToken}`,
        },
      });

      return response.data;
    } catch (error) {
      console.error(error);
    }
  });
}

Should be:

router.get("/", async (req, res) => {
  const data = await especiaisTest.getEspeciais();

async function getEspeciais() {
  return db.query(async (tokenResponse) => {

Then you will see something else rather than undefined.
If return undefined, the db.query method return nothing.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文