Node.js 如何在类验证器架构内传递映射的参数

Node.js 如何在类验证器架构内传递映射的参数,node.js,class-validator,Node.js,Class Validator,我试图将map函数的每个参数传递给validate函数,但是validate函数中的变量给出了map函数的最后一个值 result = jsonData.map(async (id, index) => { customerInfo = getInfos(id, index); console.log("map " + customerInfo.id); return validate("customerSchema", id).then

我试图将map函数的每个参数传递给validate函数,但是validate函数中的变量给出了map函数的最后一个值

result = jsonData.map(async (id, index) => {
        customerInfo = getInfos(id, index);

        console.log("map " + customerInfo.id);

        return validate("customerSchema", id).then(errors => {

        console.log("validate " + customerInfo.id);

          if (errors.length > 0) {
            throw new HttpException(
              {
                status: HttpStatus.FORBIDDEN,
                error: errors[0].constraints
              },
              403
            );
          }

        });
      });
预期产出:

map 1
validate 1
map 2
validate 2
实际产量:

map 1
map 2
validate 2
validate 2
为什么验证程序会两次获取第二个id?

如果您使用的是异步函数,则使用wait而不是then。使用await可以获得预期的输出,因为控件将等待validate方法的执行,但是使用wait,控件只需在另一个线程上执行其中的内容,然后在主线程上继续执行map函数