我有一个工作的用户登录功能。但是,我想为提取合并超时错误。有没有办法设置一个计时器5秒左右,以避免在这样的时间后试图获取?否则,我会在一段时间之后发现网络错误,然后出现红色屏幕。做超时错误而取 - 阵营本地
_userLogin() {
var value = this.refs.form.getValue();
if (value) { // if validation fails, value will be null
if (!this.validateEmail(value.email)) {
Alert.alert(
"Enter a valid email",
)
} else {
fetch("http://51.64.34.134:5000/api/login", {
method: "POST",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
timeout: 5000,
body: JSON.stringify({
username: value.email,
password: value.password,
})
})
.then((response) => response.json())
.then((responseData) => {
if (responseData.status == "success") {
this._onValueChange(STORAGE_KEY, responseData.data.token)
Alert.alert(
"Login Success!",
)
this.props.navigator.push({ name: 'StartScreen'})
} else if (responseData.status == "error") {
Alert.alert(
"Login Error",
responseData.message
)
}
})
.done();
}
}},
通过这样做此超时,它只能解决问题的表面,它不能放弃一定时间后请求。 – TomSawyer
@TomSawyer尽管这并不是什么问题;该问题并没有要求在超时后处理中止。另外,我的答案确实包含了可能的解决方案的链接,以便在其他人希望朝着这个方向前进时中止。所以我不太确定你评论的重点是什么? –
我指出谁关心超时机制是如何工作的。在HTTP请求,这意味着中止连接一个连接超时,其分配的内存必须释放,其过程中需要被终止不仅为UI更新返回false然后继续在后台运行。 – TomSawyer