JavaScript 中的 Promises/Fetch:如何从文本文件中提取文本
Posted
技术标签:
【中文标题】JavaScript 中的 Promises/Fetch:如何从文本文件中提取文本【英文标题】:Promises/Fetch in JavaScript: how to extract text from text file 【发布时间】:2018-10-28 07:24:57 【问题描述】:我正在用 javascript 编写一个小程序。基本上,我想使用 Promise 和 fetch 从两个文本文件中提取文本。但是,我不知道如何从文件中获取实际文本。这是我当前的代码。
示例.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.log(sampleResp);
console.log(sample2Resp);
)
这是 Promises...我如何从中获取文本?
【问题讨论】:
【参考方案1】:Fetch 不会返回响应文本的承诺 - 它会返回在收到标头后可用的 Response
对象的承诺。
这样你就可以做一些很酷的事情,比如:
根据标头确定您希望如何读取响应正文。 逐步流式传输响应等。如果您想要响应的文本 - 您可以通过 .text()
Response
对象获得承诺:
Promise.all([
fetch('sample.txt').then(x => x.text()),
fetch('sample2.txt').then(x => x.text())
]).then(([sampleResp, sample2Resp]) =>
console.log(sampleResp);
console.log(sample2Resp);
);
【讨论】:
一定要把catch
扔进去:)。【参考方案2】:
使用异步/等待
async function getSampleText()
console.log( (await fetch('sample.txt')).text() );
console.log( (await fetch('sample2.txt')).text() );
【讨论】:
这不会并行获取它们。 @JulienD 是的 - 但很简单以上是关于JavaScript 中的 Promises/Fetch:如何从文本文件中提取文本的主要内容,如果未能解决你的问题,请参考以下文章