无法从异步函数中提取已解析的值
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();
我创建了一个函数来从 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();