First of all I did read through similar questions, and still cannot see where I'm making my mistake.
Here's my code:
async function validateWebsites(website) {
    var result = url.parse(`http://${website}`);
    console.log(result.hostname);
    return await fetch(`http://www.${result.hostname}`)
        .then(() => console.log(true))
        .catch(() => console.log(false));
}
var wrongWebsites = [];
    var wrongWebsites = [];
var i = 0;
websites.forEach(website => {
    i++;
    if (validateWebsites(website) === false
    ) {
        wrongWebsites.push(i);
    }
});
console.log(wrongWebsites);
How it works:
The user passes an array of websites, and I want to validate if they're valid websites, not to waste resources and block other errors. Now to the console:
digitlead.com
google.com
georgiancollege.ca
youtube.com
    []
true
true
true
true
So as you see, it prints out first the websites array, and then the response. So it's still async. How do I make it wait? I changed the loop from a for to forEach as suggested by many posts, I used the await and I am returning a promise. So what else do I have to do?
Edit:
I tried to do this:
async function validateWebsites(website) {
    var result = url.parse(`http://${website}`); // TODO figure out if filtering all the subpages is a good idea.
    console.log(result.hostname);
    return await fetch(`http://www.${result.hostname}`)
        .then(()=>console.log(true))
        .catch(()=>console.log(false));
}
But it doesn't change anything
I found a function called readFileSync. That's more or less what I'm looking for, but with the ability to call a different website.
 
     
    