Я не уверен в этом вопросе, можно ли это реализовать или нет.
Я использую node.js с express.js и базой данных MySQL.
У меня есть несколько записей вБаза данных MySQL.Эти записи продолжаются, обновление продолжается.
Итак, предположим, что я получаю некоторые записи из MySQL и запускаю операции над каждой записью с Promise.all
, используя функцию demoFunction
, которая возвращает обещание.
В этой функцииЯ пытаюсь проверить наличие новых записей в базе данных MySQL.Если я получаю новые записи, я хочу перенести операцию этой новой записи в текущую очередь Promise.all
.Это возможно?Если это невозможно, то как мне достичь этой цели с помощью продолжения выполнения?
Итак, мой код выглядит так:
const demoFunction = (arg1, arg2) => {
checkForNewData();
return new Promise((resolve, reject) => {
// Rest of my code is here for this function
// This function will be take around 5 to 10 mins
});
};
const dataFromDatabase = "Here i'm getting some data into array of object from SQL database";
let allPromises = dataFromDatabase.map((obj) => demoFunction(obj.arg1, obj.arg1));
const checkForNewData = () => {
const newDataFromDatabase = "Here i'm getting some new data into array of object from SQL database";
for (let i = 0; i < newDataFromDatabase.length; i++) {
allPromises.push(demoFunction(newDataFromDatabase[i].arg1, newDataFromDatabase[i].arg2));
}
};
return Promise.all(allPromises)
.then(() => {
// response
})
.catch((e) => {
console.log(e);
})