Я пытаюсь создать отчет, который растягивает пределы моего понимания как Node, так и MySQL.Перевод цикла while на обещание
У меня есть already established, что мне нужна ежегодная информация о дате, которую я хочу вызывать на каждый год, который я хочу отобразить. Теперь у меня есть запрос, который может вернуть нужные мне данные, мне просто нужно повторить это в среде Node.
Исходя из фона Delphi следующий код предоставить мне данные мне нужно
LoadTurnover = function (req, reply) {
const queryDay = "-04-06";
const maxDate = new Date();
let queryYear = 2000;
let qd = new Date(queryYear + queryDay);
let dateArray = [];
while (qd < maxDate) {
// Get the data from the server
let data = getData(sql);
//
let turnoverObj = {};
turnoverObj.date = qd;
turnoverObj.Employees = data[0][0].Employees;
turnoverObj.Leavers = data[1][0].Leavers;
// Add current year data to our result set
dateArray.push(turnoverObj);
// Setup the next year condition
queryYear ++;
qd = new Date(queryYear + queryDay);
}
};
Мне нужно, чтобы иметь возможность отправить посыл к серверу БД (GetData) и заполнить turnoverObj
и dateArray
appropriatly. Это нужно повторить, пока qd
не будет больше сегодняшней даты.
К сожалению, в настоящее время мы используем ES6 Promises, но это может сработать, если не будет другого выбора. Другой темой, о которой я думал, является использование Promise.All после определения каждого запроса как обещания в массиве. Любые причины, по которым не нужно? –
Да, конечно, это была моя вторая мысль. В таком случае вы просто выполняете цикл «date.forEach», в котором вы могли бы создать обещание, используя одну «дату» и надавить на массив обещаний. Затем просто выполните 'Promise.all (обещания)' – piotrbienias