小编jos*_*ran的帖子

Javascript 异步函数 - .map - 操作顺序

努力使用异步和等待来设置此功能。

我有一个映射对象数组的函数。对于每个对象,我们发出一些外部 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)

javascript async-await

1
推荐指数
1
解决办法
42
查看次数

标签 统计

async-await ×1

javascript ×1