Я работаю над небольшой программой на JavaScript. По сути, я хочу использовать Promise и fetch для извлечения текста из двух текстовых файлов. Однако я не могу понять, как получить фактический текст из файлов. Вот мой текущий код.
sample.txt
this is
a sample
text file.
sample2.txt
this is
the second
sample file.
index.js
function getSampleText() {
Promise.all([
fetch('sample.txt'),
fetch('sample2.txt')
]).then(allResp => {
let sampleResp = allResp[0];
let sample2Resp = allResp[1];
console.info(sampleResp);
console.info(sample2Resp);
})
}
Вот обещания ... как мне извлечь из них текст?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Fetch не возвращает обещание для текста ответа - он возвращает обещание для объекта Response, доступного после получения заголовков.
Это значит, что вы можете делать такие крутые вещи, как:
Если вам нужен текст ответа - вы можете .text() объекты Response, чтобы получить обещание для этого:
Promise.all([
fetch('sample.txt').then(x => x.text()),
fetch('sample2.txt').then(x => x.text())
]).then(([sampleResp, sample2Resp]) => {
console.info(sampleResp);
console.info(sample2Resp);
});
Обязательно кидайте туда catch :).
Используйте async / await
async function getSampleText() {
console.info( (await fetch('sample.txt')).text() );
console.info( (await fetch('sample2.txt')).text() );
}
Это не приводит к их параллельной загрузке.
@JulienD да - но все просто
Большое спасибо за совет, у него действительно все заработало.