【问题标题】:API Timeout on React Native Pepperoni Starter KitReact Native Pepperoni Starter Kit 上的 API 超时
【发布时间】:2017-02-22 19:09:32
【问题描述】:

我正在使用 React Native Pepperoni Starter Kit。我使用post 函数之一从服务器获取数据。每当我拨打电话时,API 都会因超时而失败,但服务器会收到电话。唯一的客户端显示它失败了。

onboardingState.js

   export function validatePhone(phoneNumber){
  return dispatch => {
    post('/api/users/register',{
      number : phoneNumber,
      deviceInfo : {}
    },false).then((res)=>{
      console.log('POST SUCCESS');
      console.log(res);
    }).catch((error)=>{
      console.log('POST ERROR');
      console.log(error);
    });
  }
}

我用来拨打电话的文件。 api.js

【问题讨论】:

  • 我认为您缺少该 URL。您使用的网址为'/api/users/register',我认为您必须使用类似'http://ipaddress:port/api/users/register' 的网址。您尝试访问的 API URL 是什么?
  • 在此之前我已经设置了基本 URL。结束 URL 正确,服务器正在接收请求。
  • 假设,我会说你错过了当时的拒绝部分。应该是.then((ok_resp) => { }, (error_resp) => { /* promise has been rejected */ })。 Post 必须尝试拒绝承诺,但您还没有通过拒绝回调。

标签: javascript reactjs react-native fetch


【解决方案1】:

我认为你错过了拒绝回调。

试试这个:

export function validatePhone(phoneNumber){
  return dispatch => {
    post('/api/users/register',{
      number : phoneNumber,
      deviceInfo : {}
    }, false)
    .then((res)=>{
      console.log('POST SUCCESS');
      console.log(res);
    }, (cause) => {
      console.log('POST REJECTED');
      console.log(cause);
    })
    .catch((error)=>{
      console.log('POST ERROR');
      console.log(error);
    });
  }
}

让我知道它是否有效。没有太多信息,但似乎缺少拒绝回调导致失败。我的意思是,缺少拒绝回调会阻止您意识到您收到的原始错误。

您必须确保服务器正确响应。一种情况可能是您的服务器接收请求但未将响应发送给客户端。你检查了吗?

Api.js 的默认超时时间为 6 秒,似乎无法修改。检查 Api.js 中的第 8 行,你会看到:

const TIMEOUT = 6000;

考虑使用另一个库,以便从服务器获取您的信息,例如 fetch,或者通过您自己的 Api.js 进行修改以将 TIMEOUT 设置得更大。

【讨论】:

  • 我使用此代码并转到 POST REJECTED 并出现超时错误。服务器正确响应并发送 OTP。
  • 但是你在拒绝回调中看到了什么?原因是什么?
  • cause 超时。
  • 嗯,这可能是由多种原因引起的。您是否配置了任何超时时间?您的服务器占用了多少秒?该 Api.js 中有一个默认常量设置为 6 秒的超时。 const TIMEOUT = 6000;
  • 我认为超时会导致您的问题。为了对其进行测试,我认为您有两个选择: 1- 下载库并对其进行修改以更改 TIMEOUT 2- 在服务器上伪造您的 post 方法以避免时间处理。我的推荐: - 使用fetch lib
猜你喜欢
  • 1970-01-01
  • 2017-07-28
  • 2017-11-08
  • 2016-06-05
  • 2018-05-12
  • 2016-12-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多