无法从异步函数中提取已解析的值

Unable to extract resolved value from async function

我创建了一个函数来从 Reddit API 获取当前用户的数据,作为具有多个函数的 Reddit 对象的一部分。

async getCurrentUserId() {
        if (userID) return userID;

        const token = await Reddit.getAccessToken().then(val => {
            return val;
        })
        const url = "https://oauth.reddit.com/api/v1/me"
        const headers = {
            "Authorization": `Bearer ${token}`,
            "User-Agent": "blablabla",
        };

        const response = await fetch(url, { headers: headers });
        if (response.ok) {
            const jsonResponse = await response.json();
            return jsonResponse.name;
        }
    },

然而,当我尝试提取数据时,我一直得到一个承诺而不是解析值,我似乎无法弄清楚。

const userID = Reddit.getCurrentUserId().then(val => {
  return val;
}) // returns "Promise {<pending>}"

我们将不胜感激。

您要么需要在 .then() 中执行您的逻辑,要么使用 await:

进行简化
const token = await Reddit.getAccessToken();

...

const userID = await Reddit.getCurrentUserId();