我想更新index
的值。在这个场景中,有一个工作卡,里面有多个服务,每个服务都有多个员工。所以我想创建一个多维对象,在工作卡对象里面有一个服务数组,在每个服务里面有员工数组,但我的索引变量没有更新。
这是代码
await Promise.all(
services.map(async (service) => {
const labor = await new Promise((resolve, reject) => {
connection.query(getLabor, [service?.labors_id], (err, result) => {
resolve(result);
});
});
rest.services.push(labor[0]);
laborEmployee = service?.employees_id?.split(",");
let index = -1;
index = index + 1;
rest.services[index].employees = [];
console.log(index);
await Promise.all(
laborEmployee.map(async (emp) => {
const e = await new Promise(async (resolve, reject) => {
connection.query(getEmployee, [emp], (err, result) => {
if (err) throw err;
rest.services[index]?.employees?.push(result[0]);
resolve(result);
});
});
})
);
})
);
但我的索引变量保持不变。目前有两次迭代,所以索引应该是0和1,但它仍然是0和0。
仅仅看代码我不能100%确定,但我的直觉是尝试在初始await Promise.all
的范围之外定义索引变量,就像目前的情况一样,正在为每个Promise定义一个新的索引。