Как мне дождаться извлечения до окончания sh и загрузки контента, прежде чем продолжить выполнение программы - PullRequest
0 голосов
/ 06 апреля 2020

Это моя функция, которая получает данные из указанного c URL-адреса и сохраняет их в локальном хранилище, позже я буду вызывать их для указанного c URL-адреса, а также отображать и работать с содержимым из локального хранилища.

Эта выборка занимает приблизительно 1,5 секунды, поэтому после первого нажатия кнопки, вызывающей эту функцию, ничего не отображается. Как мне дождаться извлечения до конца sh и загрузки контента, прежде чем продолжить выполнение программы?

function getContent(url) {
    fetch(url)
        .then(response => response.json())
        .then(function store(data) {
            localStorage.clear();
            localStorage.setItem("data", JSON.stringify(data.hits));
        })
        .catch(function (error) {
            console.log('Request failed', error);
        });
}

Это то, что я пробовал

async function getContent(url) {
    await fetch(url)
        .then(response => response.json())
        .then(function store(data) {
            localStorage.clear();
            localStorage.setItem("data", JSON.stringify(data.hits));
        })
        .catch(function (error) {
            console.log('Request failed', error);
        });
}

1 Ответ

0 голосов
/ 07 апреля 2020

Вы должны попробовать этот код:

async function getContent(url) {
  try {
    const response = await fetch(url);
    const data = await response.json();
    localStorage.clear();
    localStorage.setItem('data', JSON.stringify(data.hits));
  } catch (error) {
    console.log('Request failed', error);
  }
}
...