2017-02-22 3 views
1

私はリアクションネイティブペパーロニスターターキットを使用しています。私は1つの関数postを使用してサーバーからデータをフェッチします。私がコールするたびに、タイムアウトのためAPIが失敗しますが、サーバーはコールを受け取ります。クライアントだけが失敗したことを示しています。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); 
    }); 
    } 
} 

私は電話をかけるために使用していますファイル。

+0

URLがありません。あなたはurl ''/api/users/register''として使っていますが、あなたは '' http:// ipaddress:port/api/users/register''のようなURLを使う必要があります。あなたが到達しようとしているAPI URLは何ですか? –

+0

私はこれの前にベースURLを設定しました。エンドURLが正しく、サーバーがリクエストを受信して​​います。 –

+0

それを仮定すると、私はあなたがその時点で拒絶部分を欠いていると言います。それは '.then((ok_resp)=> {}、(error_resp)=> {/ *約束が拒否された* /})'でなければなりません。ポストは約束を拒否しようとしなければならないが、あなたは過去のコールバックを拒否していない。 –

答えて

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のようにサーバーから情報を取得したり、より大きなものTIMEOUTを設定するために、独自のApi.jsにより変更するために、別のlibを使用することを検討してください。

+0

私はこのコードを使って 'POST REJECTED'とタイムアウトエラーに行きました。サーバーが正しく応答し、OTPを送信しています。 –

+0

拒否されたコールバックで何を確認しましたか?原因は何と言いましたか? –

+0

'原因 'はタイムアウトです。 –

関連する問題