【问题标题】:data output after receiving it in fetch在 fetch 中接收到数据后输出
【发布时间】:2019-11-22 16:55:13
【问题描述】:

我为这个愚蠢的问题道歉,请告诉我如何从 fetch() 传输数据。然后 () 到另一个函数。

const http = require('http');
const https = require('https');
var urlZaprosHttp = 'http://ietf.org/';
var urlZaprosHttps = 'https://ietf.org/';


const fetch = url => new Promise((resolve, reject) => {
  const protocol = url.startsWith('https') ? https : http;
  protocol.get(url, res => {
    if (res.statusCode !== 200) {
      const { statusCode, statusMessage } = res;
      reject(new Error(`Status Code: ${statusCode} ${statusMessage}`));
    }
    res.setEncoding('utf8');
    const lines = [];
    res.on('data', chunk => lines.push(chunk));
    res.on('end', () => resolve(lines.join()));
  });
});

// Usage

fetch(urlZaprosHttps)
  .then(body => console.log(body))
  .catch(err => console.error(err));

【问题讨论】:

  • 调用.then中的函数,将参数传递给你想要的函数并访问函数中的参数。
  • 即...您已经使用数据调用了一个函数...console.log(body) ...只需以body为参数调用一个不同的函数
  • 我不能在 fetch 中调用函数吗?

标签: javascript promise output fetch


【解决方案1】:

您可以简单地从 then() 中调用另一个函数,然后对该函数中的数据做任何您想做的事情:

fetch(urlZaprosHttps)
  .then(body => someOtherFunction(body))
  .catch(err => console.error(err));

【讨论】:

    【解决方案2】:
    const myFunc = (data) => {
     console.log(data)
    } 
    
       fetch(urlZaprosHttps)
          .then(myFunc(data))
          .catch(err => console.error(err));
    

    然后你可以传入一个函数,返回的数据将被传递给该函数,就像我的例子一样。

    【讨论】:

    • 我不能在 fetch 中调用函数吗?
    • 你的意思是在 fetch 中声明它吗? ,因为我们已经在 fetch 中调用了它。 @NikD
    猜你喜欢
    • 1970-01-01
    • 2021-01-09
    • 1970-01-01
    • 2014-01-23
    • 2021-12-05
    • 1970-01-01
    • 2021-03-03
    • 2021-11-23
    • 1970-01-01
    相关资源
    最近更新 更多