Функция с массивом параметров выполняется одновременно. Как сделать чтобы параметры подставлялись в функцию по очереди?
у меня есть массив с объектами, которые я использую как данные для поиска в интернете. в массиве несколько объектов, то если передавать их значение в функцию - они выполняются одновременно. как сделать так, чтобы следующее условие передавалась в функцию после того, как полностью пройдет весь процесс функции по предварительным условием?
let listOfCompanies = [
{companyName: "Google", title: "CTO"},
{companyName: "Google", title: "VP"},
{companyName: "Google", title: "CEO"},
{companyName: "Google", title: "Sales Analyst"},
{companyName: "Google", title: "UX Designer"}
];
listOfCompanies.forEach(scrape(item).then((value) => {
(async () => {
let personInfo = [];
personInfo.push(value);
console.log(personInfo);
csvWriter
.writeRecords(personInfo)
.then(()=> console.log('The CSV file was written successfully'));
})();
}));
Ответы (1 шт):
Автор решения: vsemozhetbyt
→ Ссылка
В таких случаях удобно использовать цикл for...of внутри асинхронной обёртки:
'use strict';
(async function main() {
let listOfCompanies = [
{companyName: "Google", title: "CTO"},
{companyName: "Google", title: "VP"},
{companyName: "Google", title: "CEO"},
{companyName: "Google", title: "Sales Analyst"},
{companyName: "Google", title: "UX Designer"}
];
try {
for (const item of listOfCompanies) {
const value = await scrape(item);
let personInfo = [];
personInfo.push(value);
console.log(personInfo);
await csvWriter.writeRecords(personInfo);
console.log('The CSV file was written successfully');
}
} catch (err) {
console.error(err);
}
})();