我正在使用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
答案 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设置得更大。