【问题标题】:Fetch API Delay获取 API 延迟
【发布时间】:2017-02-03 06:46:23
【问题描述】:

我正在尝试使用请求的 fetch API 在我的服务器上提取数据,但请求需要 FOREVER 来处理(它最终会处理)。我使用 React 作为我的视图,而 Express 正在为我的页面提供服务。我在下面列出了我的 Express 和 JSX 代码。了解为什么会发生这种情况(“已安装”消息按预期立即记录,但延迟后获取 API)?

快递:

app.use('/test',function(){
          console.log('connected');
  })

React.JS:

componentDidMount(){
      console.log('mounted');
      fetch('./test').then(function(response){
          console.log(response);
      }).catch(function(error){
          console.log(error);
      })  
  }

【问题讨论】:

  • 您是否在浏览器开发者工具中检查了网络请求?这将告诉您请求是否缓慢或您以错误的方式处理结果。
  • 你没有从你的服务器发送任何响应,所以浏览器等待,等待,等待,最后超时。如果你做res.send("hello") 或类似的响应,浏览器会很快得到。

标签: javascript reactjs express fetch


【解决方案1】:

你必须在服务器端发送响应:

app.use('/test',function(request, response){
          console.log('connected');
          response.send(); //!!!!! this line
         //Or:  response.sendStatus(200); to send status code without body

  }); 

...否则端点将不会被终止。

【讨论】:

  • 感谢您发现我的错误。让你挂断电话的总是琐碎的事情。
猜你喜欢
  • 2021-12-03
  • 2022-01-23
  • 2018-05-16
  • 1970-01-01
  • 1970-01-01
  • 2018-01-20
  • 2018-01-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多