response.text () не содержит то, что я ожидаю - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть поддельный файл mockedfile.html, на который я перенаправляю локально.Моя проблема в том, что когда я пытаюсь извлечь HTML-код из ответа на выборку, результат не выглядит точно так же, как и макетированный файл.Вот что я делаю:

fetch('/some-url.html').then(response => {
  if (response.redirected) { // this will be true locally
    fetch(response.url) // which will then be /mockedfile.html
      .then(res => res && res.text())
      .then(text => text) // expect this text to be the same as the content inside mockedfile.html, but this is just partly the same
  } else {
    response && response.text().then(text => text);
  }
}
})

Чего мне не хватает?Есть ли более надежный способ решить эту проблему?

Ответы [ 3 ]

0 голосов
/ 25 апреля 2019

Чтобы получить значения вне вашей выборки, вам нужно, чтобы первый .then() возвратил что-то.

лишние .then() не нужны, поскольку они просто создают новое обещание с тем же значением.

fetch('/some-url.html')
  .then(response => {
    if (response.redirected) {
      return fetch(response.url)
        .then(res => res.text());
    }
    return response.text();
  })
  .then(console.log)
  .catch(console.error)
0 голосов
/ 25 апреля 2019

Вы должны добавить ) , чтобы закрыть скобку, открытую на , затем (

   fetch('/some-url.html').then(response => {
  if (response.redirected) { // this will be true locally
    fetch(response.url) // which will then be /mockedfile.html
      .then(res => res && res.text())
      .then(text => text) // expect this text to be the same as the content inside mockedfile.html, but this is just partly the same
  } else {
    response && response.text().then(text => text);
  }
});
})
0 голосов
/ 25 апреля 2019
fetch(url).then(result => result.text()).then(yourText => ...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...