Calling function not awaiting return from xhr.onreadystatechange function [duplicate]

Promises are my weakness.

When user clicks on a table row, the code should fetch updated data from the database and present it to the user on a screen form.

I am using the older style xhr = new XMLHttpRequest() because I cannot wrap my head around the new fetch interface in this sort of use case.

The pseudo code looks like this:

button.addEventHandler('click', present_row_data_to_user);

async present_row_data_to_user(e){
    dbObj = await fetch_the_data_from_db(id);
console.log(dbObj);
    const fld = document.getElementById('name');
    fld.value = dbObj['name']; //<== Fails here, see below
}

async function fetch_the_data_from_db(id){
    const xhr = new XMLHttpRequest();
    xhr.onreadystatechange = await function() {
        if (this.readyState == 4 && this.status == 200) {

console.log('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=');
//console.log(this.responseText); <== The desired data object is here, confirmed, with correct data
console.log('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=');

            return this.responseText;
        }
    }

    const xhrreq = `request=fetch_tkt_data_for_this_email&id=${id}`;
console.log(`%c xhrreq: [ ${xhrreq} ]`, 'color:blue');
    xhr.open("POST", "ajax.php");
    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
    xhr.send(xhrreq);

}

In the console, I see (in this order):

a. The blue console log for the xhrreq: [fetch_tkt_data_for_this_email]

b. undefined

c. Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'name') at HTMLDivElement.present_row_data_to_user (aei.js:311:41) – where line 311 is: fld.value = dbObj['name'];

d. the two lines =-=-=-=-=-=-=-=-=

NOTE: If I move the line fld.value = dbObj['name'] into the xhr.onreadysteatechange function, it works fine.

So the code is not waiting for the xhr request to be returned before trying to access the this.responseText object (that is still pending return from the xhr.onreadystatechange function)

Suggestions?