Итак, в основном я знаю, где проблема с моим кодом:
export async function hourlyUpdate(bot:Discord.Client){
let result=new Promise<ActiveSubscriberList>(async (resolve,reject)=>{
let fileData=await getDataFromFile()
let resultList:ActiveSubscriberList={Server:[]}
fileData.channels.forEach(async(element,index)=>{
let tempArr=[]
element.subscriber.forEach(element => {
tempArr.push(element.userID)
})
let tempEntry={Channel:element.channelID,Subscriber:await actualFetch(bot,element.guildID,tempArr)}
resultList.Server.push(tempEntry)
})
resolve(resultList)
}).then(value=>{
})
return result
}
async function actualFetch(bot:Discord.Client,guildID:string,userArr:string[]){
let result= new Promise<string[]>(async (resolve)=>{
let activeSubs=[]
let tempSubArray=await bot.guilds.cache.get(guildID).members.fetch({ user: userArr, withPresences: true })
tempSubArray.forEach(element=>{
activeSubs.push(element.user.id)
})
resolve(activeSubs)
})
return result
}
Я подумал, что проблема заключается в продолжении l oop, несмотря на то, что результат от другой функции asyn c не разрешен.
Мой вопрос: есть ли у кого-нибудь идея, как перекодировать эти циклы, чтобы вся функция фактически возвращала результат, а не пустые объекты? Любые другие комментарии, советы и рекомендации по улучшению этого кода ценится тоже.