[英]async/await issue (returns undefined) mongoose
當我調用方法interval時,我從方法allUserStats得到的參數user總是未定義的。 這是方法
const interval = async () => {
const allUsers = await getAllUser();
for (const u of allUsers) {
let user;
let followerScore;
let subscriberScore;
//let hostsScore;
let viewerScore;
await getAllUserStats(u.login_name).then(async (userStats)=>{
user = userStats;
...
getAllUserStats 方法如下所示:
const getAllUserStats = async (login_name) => {
await userstats.findOne({login_name}).then(async(userStats)=>{
if(userStats===null){
let user = new userstats({
login_name:login_name,
followers: [],
subscribers: [],
hosts: [],
viewers: []
})
await user.save();
return user;
}
else{
return userStats;
}
})
}
我認為這是一個異步等待問題,但我不知道。 有什么建議我可以解決這個問題嗎?
您正在混合 async/await 並使用promise.then
- 您可以使用async/await
來編寫所有內容,這樣會更容易:
const getAllUserStats = async (login_name) => { const userStats = await userstats.findOne({login_name}) if(userStats===null){ let user = new userstats({ login_name:login_name, followers: [], subscribers: [], hosts: [], viewers: [] }) await user.save(); return user; } else{ return userStats; } }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.