У меня есть более 1000 массив объектов с такими свойствами, как:
const empArr = [{
empName: 'sds',
empId: 'e3',
dob: '22 -12-2 ',
.. скоро
}];
Я пробовал формулировать проблему с помощью promise.all (обещания), но я хочу сделать это более эффективно. Итак, мне нужна помощь
function makeDBInsert(empArr) {
const dbArr = [];
const promises = [];
const LEN = empArr.length;
/** this function returns promise containing emp age **/
function getEmpAge(empId) {
return db.execute('select age from emp where "empId" = ?', [empId]);
}
for (let i = 0; i < LEN; i += 1) {
const obj = {
name: empArr[i].empName,
empId: empArr[i].empId
}
promises.push(getEmpAge(obj.empId);
dbArr.push(obj);
}
return Promise.all(promises).then((empDetail) => {
const dbObj = empDetail.map((emp, i) => {
return {
dbArr[i].age: emp.age
}
});
return db.insert('insert into emp ("name", "id", "age") values ('?', '?', '?');', Object.values(obj));
}).catch(err => console.error(err));
}
Итак, здесь empArr имеет более 1000 объектов в массиве. Здесь я выбираю emp age из db, который возвращает мне обещание, содержащее emp id. Я использую обещание. Все, чтобы сделать эту работу, вместо этого есть ли лучший способ обойтись без использования обещания и затем итерации? Заранее спасибо.
Примечание: пожалуйста, игнорируйте синтаксические ошибки в коде. Моя цель здесь просто описать мою постановку проблемы.