Сетевые запросы асинхронны по своей природе: выполняются непредсказуемо долго.
Попробуйте изменить общую логику приложения так, чтобы результат запроса, когда появится, не просто назначался в какую-то переменную, а вызывал колбэк с результатом.
function getIndex(adr) {
// ...
return fetch(ajaxurl, {
method: 'POST',
body: formData
}).then(resp => resp.text())
.then(showResult)
// парашютики не забываем:
.catch(err => console.error(err));
}
function showResult(data) {
console.log(data);
}
getIndex('https://ya.ru/'); // вернёт промис, ну и фиг с ним
Либо поместите всю логику дальнейшей работы с результатом прямо в цепочку промисов:
function getIndex(adr) {
// ...
return fetch(ajaxurl, {
method: 'POST',
body: formData
}).then(resp => resp.text())
.then(showResult)
.catch(err => console.error(err));
}
getIndex('https://ya.ru/')
.then(data => {
document.querySelector('#output').innerText = data;
})
.catch(err => console.error(err));