I am trying to fetch data from an API and after that set data in web page. setting data should be done before rendering the page.
HTML code:
<div id="info">
    <h1 id="p_name"></h1>
    <h2>
       <a href="" id="p_spec"></a>
    </h2>
    <h3 id="p_numberp"></h3>
    <img id="p_image">
</div>
Javascript code is :
//readed data from API 
var page_data = {};
window.addEventListener('DOMContentLoaded', async function(){
    var parameters = location.search.substring(1).split("?");
    await fetchdata(parameters[0], function(){
        setdata();
    });
});
async function fetchdata(id, callback) {
    url = "https://my_url" + id;
    fetch(url)
    .then((resp) => resp.json()) // Transform the data into json
    .then((data) => (page_data = data));
  callback();
}
function setdata() {
    document.getElementById("p_name").innerHTML = page_data.name;
    document.getElementById("p_spec").innerHTML = page_data.spec;
    document.getElementById("p_image").src = page_data.avatar;
}
I tried this but it does not work (when i opened the web page, all items are undefined). thanks.
 
    