How to use the value of an async function outside without using another async function or .then [duplicate]

context

I need to retrieve some data from an asynchronous function to use it in my normal synchronous code. That is, I need my application to wait for the response before proceeding without having to make the entire application asynchronous.

The problem

I’ve been looking at answers for 2 days and none of them explain how to do that. They all tell you that to work with asynchronous code, you must use promises or async/await. The problem is that a function marked as async always returns a promise, so it’s impossible to use the received value in your synchronous code. And the .then is still an asynchronous context. So what I’m finding is that if I want to use data retrieved by an async function throughout all my application, I have to convert half of the application to async. Otherwise, you always run the risk of asynchrony creating unwanted behavior.

The question

How do you wait for an asynchronous function to retrieve the data so you can use it normally in synchronous code? Is it possible to do that without stuffing all of this into another async function or a .then?

aditional info

Before marking this post as a duplicate, I must say that I have read about 20 similar messages ( like this one How do I return the response from an asynchronous call? ). In all of them, the solution they propose is to retrieve the information and use it in another async function or in a .then that is also async.