Witam, mam taką funkcję:
async function work(count){
console.log(count)
if (count == mainPages.length) {
process.exit();
}else {
await sitesCheck(mainPages[count]).then(work(count++));
console.log('wyswietlam sie zanim funkcja sitesCheck sie wykona :( )')
}
}
Problem polega na tym, że instrukcja then i console.log() poniżej wykonuje się zanim funkcja sitesCheck kończy działanie. Jak temu zapobiec?
funkcja sitesCheck:
async function sitesCheck(page){
var site = Site;
site.name = page
//console.log(site.name)
request(site.name, async function(err, response, html){
if (!err) {
var $ = cheerio.load(html);
var href = $("a").each(function(){
var a = $(this).attr('href');
site.subPages.push(a);
});
//console.log(site)
//console.log('------------------')
var link;
for (const item of site.subPages) {
//console.log(item)
if ( !(item.includes('http://') || item.includes('https://')) ) {
//console.log('ert')
if ( !item.includes('www')) {
if (!item.includes('.')) {
if ( !(item.includes('(') || item.includes(')') || item.includes(';') || item.includes(',') || item.includes('#')) ) {
link = site.name + item;
}else {
continue;
}
}else {
if (item.includes('.html') || item.includes('.php') || item.includes('.ejs')) {
link = site.name + item;
}else {
link = 'www.' + item;
}
}
}
}else {
link = item;
}
//console.log(link);
await takeContent(link).then(val => checkWords(val, page, link))
}
}
//console.log('witam was')
return true;
});
}