Я совсем недавно познакомился с JS и асинхронным программированием, поэтому до сих пор испытываю сложности, когда встречаюсь с асинхронным выполнением кода.
Цель - протестировать один сервис, для этого я выгрузил в файл в формате JSON все записи, из которых формируются урлы для запросов. И нужно проверить каждую запись, отправив для нее отдельный запрос. 10к записей успешно выгрузились, все читается, но когда я начал читать построчно файл столкнулся с проблемой, что запросы уходят асинхронно на не сформированные урлы, и возвращаются соответственно 500-е ошибки
Для отправки запросов использую request-promise
Для построчного чтения byline
var user = api.webAuthorize(qaqaqa);
user.then(() => {
var file = './assets.json';
var stream = byline(fs.createReadStream(file, { encoding: 'utf8' }));
stream.on('data', (line) => {
var parsedLine = JSON.parse(line);
api.getPlayList(parsedLine.asset).then((body) => {
//обработка тела ответа
});
});
});
При том в другом месте использовал такую же конструкцию и все отрабатывалось успешно, но размер чанка при чтении файла там был больше, чем содержимое файла, полагаю, что из-за этого в том месте все не возникло проблем.
Может кто подсказать, как нужно правильно обработать 10к+ строк в файле и для каждой строки отправить запрос на сервер? Последовательность меня не сильно волнует, главное - обработать каждую запись.