API React Native Pepperoni Starter Kit 超时

API Timeout on React Native Pepperoni Starter Kit

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

我认为您缺少拒绝回调。

试试这个:

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 设置得更大。