【问题标题】:How to return a value from axios outside axios function如何从axios函数之外的axios返回一个值
【发布时间】:2022-07-06 18:06:02
【问题描述】:

我有一个 router.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);
    }
  });
}

每当我调用它时,我都会得到 console.logged 一个未定义的结果。

我尝试在 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'
    }

它会在控制台中显示“你好”。如何从 db.query 中获取 response.data 以便能够显示数据?

【问题讨论】:

  • 我认为你应该在 getEspeciais 函数中使用 return db.query ...
  • @A.Anvarbekov 我试过了,但仍然不确定

标签: node.js express axios


【解决方案1】:

问题代码。


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) => {

然后你会看到别的东西,而不是不受约束的。

【讨论】:

  • 没有用,如果我在 return response.data 之前放了一个 console.log() ,我得到了 undefined 但过了一会儿我从上面得到了 console.log
  • @JoseBernardo 哦,我错过了阅读代码,我会更新答案。
猜你喜欢
  • 2017-09-13
  • 2017-08-07
  • 1970-01-01
  • 2021-11-17
  • 2021-09-19
  • 2020-07-07
  • 2021-02-05
  • 1970-01-01
  • 2016-12-27
相关资源
最近更新 更多