【问题标题】:Promises/Fetch in JavaScript: how to extract text from text fileJavaScript 中的 Promises/Fetch:如何从文本文件中提取文本
【发布时间】: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...我如何从中获取文本?

【问题讨论】:

    标签: javascript asynchronous promise fetch-api


    【解决方案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 是的 - 但很简单
    猜你喜欢
    • 2014-04-26
    • 2018-12-14
    • 1970-01-01
    • 1970-01-01
    • 2010-09-22
    • 2014-02-05
    • 2016-04-22
    • 1970-01-01
    相关资源
    最近更新 更多