'chrome extension - how i can await for chrome.runtime function?

My action in the background is to access the site and take information from there, the problem is that the code continues before the information is received. Attached is a code that shows the problem:

background.js :

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
fetch(request.input, request.init).then(function(response) {
    return response.text().then(function(text) {
        sendResponse([{
            body: text,
            status: response.status,
            statusText: response.statusText,
        }, null]);
    });
}, function(error) {
    sendResponse([null, error]);
    });
    return true;
});

actions.js : after editing

const validateWord = async word => {
const input = "https://milog.co.il/" + word;
await new Promise(resolve => {
    chrome.runtime.sendMessage({ input }, messageResponse => {
        const [response, error] = messageResponse;
        const parser = new DOMParser();
        const html = parser.parseFromString(response.body, 'text/html');
        const element = html.querySelector('.sr_e_txt');
        console.log("aaa")
        resolve(element?.innerText !== '');
    });
});
};

validateWord("word")
    .then(data => console.log(data))
        .catch(reason => console.log(reason.message))

it prints aaa -> bbb -> word.. I want the "word" printed first and "aaa" wait for it to finish.

Thank you.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source