努力使用异步和等待来设置此功能。
我有一个映射对象数组的函数。对于每个对象,我们发出一些外部 axios 请求,在输出更新对象之前接收响应。我需要映射每个对象,更新并返回更新对象的数组。
我遇到的问题是输出没有等待已解决的承诺,导致未定义的值被推送到我的数组中。
我注意到在我们处理每个对象之前,该数组也会被记录。
以下两个函数有问题:
构建对象:
const createHRObj = async function (workflow) {
if (workflow.type_of_leave === "Personal") {
getAbsenceDetail(
`${workflow.employeeID}`,
`${workflow.startDate}`,
`${workflow.endDate}`
).then((res) => {
try {
console.log(`------- Handling Personal Leave! ----------`);
console.log(workflow);
if (res.Status != 0)
throw new Error(`PeopleHR absence status code: ${res.Status}`);
let absences = res.Result;
if (absences.length === 0) workflow.on_PeopleHR = false;
if (absences.length > 0) {
let count = 0;
absences.forEach((absence) => {
if (
Date.parse(absence.StartDate) <=
Date.parse(workflow.startDate) &&
Date.parse(absence.EndDate) >= Date.parse(workflow.endDate)
)
count++; …Run Code Online (Sandbox Code Playgroud)