Я создал функцию, которая принимает массив сотрудников.Мне нужно выяснить детали образования каждого сотрудника, которые находятся в другой таблице в mysql, и прикрепить их к конкретному объекту Employee.
Вот как выглядит объект сотрудника:
employee: {
id: 1,
name: 'John'
}
Вот функция, которую я написал:
const getEducationDetails = (employees, done) => {
var empArr = [];
employees.forEach(employee => {
empArr.push(employee);
employee.education = [];
const sql = `SELECT * FROM employee_education_details
WHERE employee_id = "${employee.id}"`
db.query(sql, (err, educationDetails, fields) => {
employee.education.push(educationDetails);
});
});
return done(empArr);
}
Итак, я создал собственный массив empArr и вставил в него каждый объект сотрудника.Чтобы сохранить детали образования, я создал сотрудника ['образование'].Проблема возникает из-за неблокирующей техники ввода / вывода nodejs.
Узел не ожидает завершения запроса mysql и, следовательно, возвращает empArr даже до вставки в него сведений об образовании.
Я пытаюсь найти лучший способ решить эту проблему здесь.