Как вывести значение из функции при асинхронном запросе?
Проблема в полном непонимании принципа работы асинхронного кода.
Исправить можно так:const getUsers = () => fetch("https://jsonplaceholder.typicode.com/users");

getUsers().then(res => res.json()).then(res => {
  document.getElementById("app").innerHTML = JSON.stringify(res);
})
let arr = [];
  fetch("https://jsonplaceholder.typicode.com/users")
    .then(response => response.json())
    .then(response => response)
    .catch(error => console.error(error));
  return arr;
вы объявляете пустой массив а потом его возвращаете. Может решить проблему тем, что пушить в массив данные?
UPD:
Например, можно сделать такlet arr = [];
 fetch("https://jsonplaceholder.typicode.com/users")
 .then(function(response) {
     return response.json();
 }).then(function(user) {
   arr.push(user);
   document.getElementById("app").innerHTML = JSON.stringify(arr);
 })

 console.log(arr)