Отображение асинхронной функции дважды с использованием двух разных .map ()? - PullRequest
0 голосов
/ 19 февраля 2019

Итак, у меня есть два массива: clientFeatures (который содержит id для каждой clientFeature в каждом индексе) и featureLocalIds (который содержит id в каждом индексе), и я должен сопоставить каждое из этих значений в асинхронной функции.Я знаю, что мы можем использовать Promise.all (mapFunctionWithAsync) для отображения асинхронной функции, но как мне выполнить двойную карту ??Мой код выглядит следующим образом:

По сути, я должен обновить ClientFeature со значениями clientFeatures.id в поле «id» и со значением featureLocalIds в поле «featureId» модели ClientFeature, и я должен сделать это НАВ ТО ЖЕ ВРЕМЯ!Я попробовал код ниже, но он просто добавляет один featureLocalId к нескольким clientFeatureIds

let clientFeatures = await ClientFeature.query("clientId")
    .eq(client.id)
    .exec();

  let featureLocalIds = agreementFeatures.clientFeatureId;

var clientFeaturesNew = featureLocalIds.map(async item => {
        let newClientFeatures = await Promise.all(
          clientFeatures.map(async clientFeature => {
            clientFeatureGen = await ClientFeature.update({
              id: clientFeature.id,
              clientId: client.id,
              featureId: item,
              enabled: true
            });
            return clientFeatureGen;
          })
        );
      });
...