React Native Pepperoni入门套件上的API超时

时间:2017-02-22 19:09:33

标签: javascript reactjs react-native fetch

我正在使用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

1 个答案:

答案 0 :(得分: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;

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