Как вернуть значение переменной из setTimeout/setInterval -функции?
Используй Promise / async-await, Люк!
Синхронно - никак. Асинхронно есть много способов - промисы, async/await, старые добрые коллбэки наконец.