我怎样才能从这个函数(Javascript)的内部返回一些东西?

How can I return something from the inside of this function (Javascript)?

提问人:Blackcore 提问时间:6/25/2021 更新时间:6/25/2021 访问量:45

问:

我有这段代码,它位于由另一个第二个函数调用的函数中。现在我不知道,如何将结果返回给第二个函数。

(async () => {
        try {
            const response = await axios.get(knockoutCityURL);
            console.log(response.data["1301210"].data.price_overview);
        } catch (error) {
            console.log(error.response.body);
        }
    })();

如果你能帮助我,我会很高兴。

javascript json async-await 回调 axios

评论

0赞 Sebastian Simon 6/25/2021
这回答了你的问题吗?如何从异步调用返回响应?
0赞 Andreas 6/25/2021
IIFE 中没有,因此“返回值”将是returnPromise.resolve(undefined)

答:

1赞 Andy 6/25/2021 #1

删除 IIFE,只需从一个简单的函数返回 Axios promise,然后使第二个函数异步,并等待数据。

(这是一个 JSFiddle,因为 async/await 在代码段中不起作用)

function fn1() {

  // return axios.get(knockoutCityURL);
  return new Promise((res, rej) => {
    setTimeout(() => res('Hallo'), 2000);
  });
}

async function fn2() {
  const data = await fn1();
  console.log(data);
}

fn2();

评论

0赞 Blackcore 6/26/2021
如果函数是从 nedb 查询调用的,您也知道如何等待此承诺吗?它看起来像这样:fn2() 在本例中为 getUrlPriceSaleArray(),它将从 fn1() 返回 promisedbps.forEach((dbp) => { const URL = getUrlPriceSaleArray(dbp.gameName); if(dbp.users.length > 1) { lines.push(....); } else { lines.push(...); } });
0赞 Andy 6/26/2021
不。你最好写一个新问题。不好意思。