Riveran
@Riveran
Astartes

Как привязать resolve к функции?

Есть запрос такого типа:

function downloadExcel(collection) {
  const url = collection.getExportUrl();
  const loginModel = CM.getModule('login').model;

  return new Promise((resolve, reject) => {

    $.get({
      url: url,
      success: (content) => {
        fetchSuccess(content);
      },
      error: (error) => {
        console.log(error);
        reject();
      }
    })
  })
}

function fetchSuccess(content) {
  console.log(this, content);
  // const uriContent = "data:application/octet-stream," + encodeURIComponent(content);
  const blob = new Blob([content], { type: 'text/html' });
  const uriContent = URL.createObjectURL(blob);
  let downloadLink = document.createElement("a");
  downloadLink.href = uriContent;
  downloadLink.download = "data.xls";

  document.body.appendChild(downloadLink);
  downloadLink.click();
  document.body.removeChild(downloadLink);
  resolve();
}

Проблема в том, что я не могу понять, как мне вызвать функцию resolve из функции свойства success.
Пробовал биндить и передавать this, но почему-то this везде undefined.
Как можно решить данную проблему?
  • Вопрос задан
  • 76 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
А чо, сделать её параметром fetchSuccess'а - нет, никак?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы