#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, но ваш подход сработал очень хорошо, спасибо, чувак.