【问题标题】:async function returns Promise { <pending> }异步函数返回 Promise { <pending> }
【发布时间】:2021-11-04 11:58:03
【问题描述】:

我正在尝试编写一个函数,该函数接受一个 URL 并从 Facebook Graph API 返回针对该 URL 的参与度统计信息。但是我遇到了麻烦,因为我的函数只是给我Promise { &lt;pending&gt; } 作为输出。

这是我的代码:

const getFacebookStats = async (link, ACCESS_TOKEN) => {
  try {
    const resp = await axios.get(
      `https://graph.facebook.com/v12.0/?id=${link}&fields=engagement&access_token=${ACCESS_TOKEN}`
    );
    return resp;
  } catch (err) {
    // Handle Error Here
    console.error(err);
  }
};

任何帮助将不胜感激。

【问题讨论】:

  • 你是怎么调用这个函数的? getFacebookStats 是一个异步函数,因此它会返回一个承诺。你在等吗?
  • 我尝试类似const response = await getFacebookStats(link, ACCESS_TOKEN) 然后console.log(response),这会产生错误SyntaxError: await is only valid in async functions and the top level bodies of modules

标签: facebook asynchronous facebook-graph-api


【解决方案1】:

像这样调用你的函数:

getFacebookStats(link, ACCESS_TOKEN).then(response => {
    console.log(response);
}).catch(error => {
    console.error(error);
});

或者您可以在异步函数中使用 await 调用它。

查看this 答案以获取有关 javascript 中 Promises 的更详细说明。

【讨论】:

  • 感谢详细答案的链接真的很有帮助。
猜你喜欢
  • 2020-07-09
  • 2017-10-16
  • 2020-06-08
  • 1970-01-01
  • 1970-01-01
  • 2019-02-06
  • 2019-08-02
  • 2019-12-23
  • 2023-03-21
相关资源
最近更新 更多