У меня есть кошмарный звонок, который я создал, который работает, но никогда не завершает процесс в терминале. Я знаю, что, вероятно, где-то здесь должен быть .end (), но все примеры, которые я видел, помещают их перед .then (), и когда он у меня есть, он немедленно останавливает вызов и ничего не регистрирует.
Есть предложения?
links.reduce((acc, link) => {
return acc.then(results => {
return nightmare.goto(link)
.wait('.mainpane')
.evaluate(() => {
let starData = {};
let rows = Array.from(document.querySelectorAll('tr'));
rows = rows.map(row => [...row.children].map(td => td.innerText.trim()));
rows.forEach((row, i) => {
if (i === 1) {
starData[row[0].split('\n')[0]] = row[0].split('\n')[1];
starData[row[1].split('\n')[0]] = row[1].split('\n')[1];
} else if (i > 1 && i < 11) {
starData[row[0].split(':')[0]] = row[1].replace(/ *\[[^\]]*]/g, '').replace(/\n/g, ', ');
}
});
return JSON.stringify(starData);
})
.then(result => {
results.push(result);
return results;
})
.catch(function (error) {
console.error('Search failed:', error);
});
});
}, Promise.resolve([]))
.then(results => console.log(results))
.catch(err => console.log(err));