Sails Model.findOrCreate возвращает результат запроса в цикле for - PullRequest
0 голосов
/ 01 мая 2020

Я получаю от внешнего интерфейса массив имен элементов itemsNames. Я проверяю, есть ли элементы в БД или должны быть созданы новые записи. Я написал следующее для -l oop. Я хочу, чтобы l oop до await до тех пор, пока не будет выполнен каждый запрос, и возвращаю каждый элемент в список, чтобы позже выполнить еще несколько процессов. Если я удаляю метод .exe c (), запрос возвращает созданный или найденный элемент. Как я могу открыть созданный элемент и заставить for-l oop ждать, пока не будет проверен каждый реестр? Я хочу иметь реестр созданных или уже существующих элементов. В следующем примере скриншота все элементы были новыми.

For-l oop:

  let dbList;

  for (var i = 0; i < itemsNames.length; i++) {
    let itemsNames= itemsNames[i];
    dbList+= await Item.findOrCreate({ name: itemsNames}, { name: itemsNames})
    .exec( (err, item, wasCreated) => {
      if (err) {
        throw 'Unavailable';
      }
      if(wasCreated) {
        sails.log('Created a new Item: ' + item.name);
      } else {
        sails.log('Found the existing Item: ' + item.name);
      }
      return item;
    });
    console.log('returned from findOrCreate Items: ' + i + ' ' + dbList);
  }

  console.log('Loop end');

  return dbList;

Это вывод консоли:

enter image description here

Я использую паруса 1.2.4

...