Как выполнить цикл запроса внутри другого цикла запроса

#javascript #node.js #typeorm #knex.js

#javascript #node.js #typeorm #knex.js

Вопрос:

итак, мой вопрос в том, как я могу этого добиться: у меня есть массив дат и массив местоположений, я хочу повторить массив дат и для каждой даты выполнить некоторые запросы, они перебирают весь массив местоположений, выполняя запрос для каждого элемента, и они возвращают JSONответ с данными.

PS Я использую TypeORM, и я тоже новичок

Комментарии:

1. Не могли бы вы подробнее объяснить пример кода?

Ответ №1:

Если у вас есть два массива, и вы хотите зациклить один внутри другого, тогда… просто сделайте это.

 var locations = ['Paris','St Louis','Moscow'];
var dates = ['wednesday', 'thursday', 'friday'];

async function run(locations, dates) {
  let results = [];
  
  for (let location of locations) {
    for (let date of dates) {
      console.log(`${location} - ${date}`);
      const newResults = await query(location, date);
      results = results.concat(newResults);
    }
  }
  
  return results;
}

run(locations, dates); 

отредактировано, чтобы включить пример асинхронного запроса

Комментарии:

1. извините, я думаю, что я плохо объяснил это, код предназначен для выполнения запросов внутри базы данных, поэтому я сказал, что использую typeorm.

2. итак, сделайте свой запрос внутри внутреннего цикла. это нормально, приятель.

3. Ваш запрос, скорее всего, асинхронный (он имеет дело либо с обратными вызовами, либо с обещаниями), поэтому убедитесь, что вы запускаете эту функцию внутри функции с надписью async и ожидаете результата запроса, если это возможно.

4. @BrunoD. Я отредактировал свой ответ, чтобы показать, как может выглядеть пример асинхронного запроса

5. просто предоставив обновление здесь, сработало отлично! Мои первые попытки с использованием array.map, но ваш подход сработал очень хорошо, спасибо, чувак.