У меня есть петля for..of с .then внутри. Тогда я был последним средством, я попробовал обещание Все и просто простые обещания, но я просто не могу заставить это работать. (Для пояснения: он должен перебрать массив all1 в порядке
let all1 = await VCLB.findAll({order: [['time', 'DESC']], limit: 10});
let list1 = [];
let q = 0;
for(item of all1) {
if(!message.guild.members.get(item.id)) return;
if(item.time == 0) return;
let time = item.time
VC.findOne({where: {id: item.id}}).then(findVC => {
if(!findVC) return;
let timeNow = new Date().getTime();
let startVC = findVC.time;
let difference = timeNow - startVC;
time = time + difference;
})
q++;
time = prettyMilliseconds(time)
list1.push(`**${q}.** | ${message.guild.members.get(item.id)} | **${time}** `)
}
Часть, которая не работает, это
VC.findOne({where: {id: item.id}}).then(findVC => {
if(!findVC) return;
let timeNow = new Date().getTime();
let startVC = findVC.time;
let difference = timeNow - startVC;
time = time + difference;
})
, даже еслион находит что-то там, не обновляет переменную времени. Я знаю, что этот способ не работает, но я, честно говоря, не имею никакого другого представления о том, как я могу это сделать без какого-либо асинхронного типа. чтобы быть синхронизированным, как после сбора данных, он помещает все это в единственную строку.Прежде чем я пытался использовать await для ожидания поиска в базе данных, но, очевидно, в этом случае это невозможно, так как мне нужно ждать, пока данныесначала соберите. Любое решение, которое позволяет искать базу данных, прежде чем продолжить, отлично.
Большое спасибо Сэм