Javascript Если Promc Loaded Onclick, то снова Onclick Не загружается снова? - PullRequest
0 голосов
/ 25 февраля 2020
var sarki = document.getElementsByClassName("sarki")[0];
var modal = document.getElementById("myModal");
var span = document.getElementsByClassName("close")[0];

sarki.onclick = function () {
  document.getElementsByClassName("siyah")[0].innerHTML = "<div class='loader'></div>";
Promise.all([
  fetch('blabla.txt').then(x => x.text())
]).then(([sarki]) => {
  document.getElementsByClassName("siyah")[0].innerHTML = sarki;
}),modal.style.display = "block",document.title="blabla";
}

span.onclick = function() {
  modal.style.display = "none",document.title="blabla";
}

window.onclick = function(event) {
  if (event.target == modal) {
    modal.style.display = "none",document.title="blabla";
  }
}

Как вы можете видеть, получит ли нажатие кнопки обещание, получит текстовый файл, но опять же, как вы можете видеть, я открываю модальный режим, и вы можете закрыть этот модальный режим, но если вы снова нажмете эту кнопку (без ссылки sh), этот текстовый файл файл будет загружен снова ... Я просто хочу проверить, загружен ли текстовый файл, затем не загружать снова, потому что я создаю список песен, но если загруженная снова, воспроизведение песни останавливается ...

Как я могу это сделать, если файл загружен не загружаете его снова с javascript (без библиотеки)?

1 Ответ

1 голос
/ 25 февраля 2020

Вам необходимо отслеживать, загружен ли текстовый файл или нет. Вам также не нужно Promise().all(), поскольку вы работаете с одним фактором (файлом), а не с несколькими.

let file; //<-- file loaded tracker
sarki.onclick = function () {
    let prom = new Promise(res => {
        !file ?
            fetch('blabla.txt').then(x => res(file = x.text())) :
            res(file);
    });
    prom.then(file => {
        document.getElementsByClassName("siyah")[0].innerHTML = file;
    });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...