比較提交
沒有共同的提交。「9b3c1a7b55045654445d934a0a0f4867c65702ab」和「bbcfe3e3246ddc81ec2527be5f6a987a7ce7ffa2」的歷史完全不同。
9b3c1a7b55
...
bbcfe3e324
@ -70,9 +70,7 @@ export default function AvatarUnit({ avatar, nickname, onChangeAvatar, showTip }
|
|||||||
const formData = new FormData();
|
const formData = new FormData();
|
||||||
formData.append("image", file);
|
formData.append("image", file);
|
||||||
multiFormPost(apis.uploadAvatar, formData).then(data => {
|
multiFormPost(apis.uploadAvatar, formData).then(data => {
|
||||||
setUploading(false);
|
if (data.networkStatus === 200 && data.status) {
|
||||||
if (data.networkStatus !== 200) return;
|
|
||||||
if (data.status) {
|
|
||||||
setUploaded(true);
|
setUploaded(true);
|
||||||
setTimeout(() => {
|
setTimeout(() => {
|
||||||
handleClose();
|
handleClose();
|
||||||
@ -82,6 +80,7 @@ export default function AvatarUnit({ avatar, nickname, onChangeAvatar, showTip }
|
|||||||
else {
|
else {
|
||||||
alert('头像上传失败:' + data.data);
|
alert('头像上传失败:' + data.data);
|
||||||
}
|
}
|
||||||
|
setUploading(false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, [file, onChangeAvatar]);
|
}, [file, onChangeAvatar]);
|
||||||
@ -89,15 +88,14 @@ export default function AvatarUnit({ avatar, nickname, onChangeAvatar, showTip }
|
|||||||
const handleChangeNickname = useCallback(() => {
|
const handleChangeNickname = useCallback(() => {
|
||||||
setNicknameUploading(true);
|
setNicknameUploading(true);
|
||||||
post(apis.updateNickname, { nickname: nicknameNow }).then(data => {
|
post(apis.updateNickname, { nickname: nicknameNow }).then(data => {
|
||||||
setNicknameUploading(false);
|
if (data.networkStatus === 200 && data.status) {
|
||||||
if (data.networkStatus !== 200) return;
|
|
||||||
if (data.status) {
|
|
||||||
alert('昵称已修改为:' + nicknameNow);
|
alert('昵称已修改为:' + nicknameNow);
|
||||||
setNicknameNow(nicknameNow);
|
setNicknameNow(nicknameNow);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
alert('修改失败:' + data.data.map(item => item.msg).join(','));
|
alert('修改失败:' + data.data.map(item => item.msg).join(','));
|
||||||
}
|
}
|
||||||
|
setNicknameUploading(false);
|
||||||
});
|
});
|
||||||
}, [nicknameNow]);
|
}, [nicknameNow]);
|
||||||
|
|
||||||
|
@ -89,33 +89,24 @@ async function send(xhr, retryConf) {
|
|||||||
console.log(err);
|
console.log(err);
|
||||||
// 等待列表不为空时弹框要么出现了要么就是在消失的路上,没有办法给予用户点击重试的机会,所以交由外部逻辑处理
|
// 等待列表不为空时弹框要么出现了要么就是在消失的路上,没有办法给予用户点击重试的机会,所以交由外部逻辑处理
|
||||||
|
|
||||||
const failPostProceess = () => {
|
|
||||||
waitToSend.splice(waitToSend.indexOf(retryConf), 1);
|
|
||||||
return failData;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 注意,理论上带有时间戳的请求是不可以重试的,但是这里不做那方面考虑,如果未来有需要,可以自己实现一个刷新时间戳重试的逻辑
|
// 注意,理论上带有时间戳的请求是不可以重试的,但是这里不做那方面考虑,如果未来有需要,可以自己实现一个刷新时间戳重试的逻辑
|
||||||
if (err.message === 'Network Error')
|
if (err.message === 'Network Error')
|
||||||
return (await failed('您的设备似乎断网了,或者服务器发生了问题,请检查网络后重试或刷新', flushWaitList(retryConf))) || failPostProceess();
|
return await failed('您的设备似乎断网了,或者服务器发生了问题,请检查网络后重试或刷新', flushWaitList) || failData;
|
||||||
if (!err?.response?.status)
|
if (!err?.response?.status)
|
||||||
return (await failed('请求发生问题:' + err.message, flushWaitList(retryConf))) || failPostProceess();
|
return await failed('请求发生问题:' + err.message, flushWaitList) || failData;
|
||||||
if (err.response.status === 504)
|
if (err.response.status === 504)
|
||||||
return (await failed('请求超时,请耐心等待几秒后重试或刷新', flushWaitList(retryConf))) || failPostProceess();
|
return await failed('请求超时,请耐心等待几秒后重试或刷新', flushWaitList) || failData;
|
||||||
return (await failed('服务器出现问题,请稍后重试或刷新,错误代码' + err.response.status, flushWaitList(retryConf))) || failPostProceess();
|
return await failed('服务器出现问题,请稍后重试或刷新,错误代码' + err.response.status, flushWaitList) || failData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function flushWaitList(confToRun) {
|
function flushWaitList() {
|
||||||
return async () => {
|
|
||||||
waitToSend.splice(waitToSend.indexOf(confToRun), 1);
|
|
||||||
let fns = waitToSend.map(
|
let fns = waitToSend.map(
|
||||||
conf =>
|
conf =>
|
||||||
async () => conf.resolver ? conf.resolver(await conf.fetcher()) : await conf.fetcher()
|
async () => conf.resolver(await conf.fetcher())
|
||||||
);
|
);
|
||||||
waitToSend.splice(0, waitToSend.length);
|
waitToSend.splice(0, waitToSend.length);
|
||||||
fns.forEach(fn => fn());
|
fns.forEach(fn => fn());
|
||||||
return confToRun.resolver ? confToRun.resolver(await confToRun.fetcher()) : await confToRun.fetcher()
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function feedWaitList(data) {
|
function feedWaitList(data) {
|
||||||
|
@ -44,12 +44,12 @@ export class UploadContainer extends Component {
|
|||||||
if (this.state.submitting && (!this.state.file || this.state.url !== "")) {
|
if (this.state.submitting && (!this.state.file || this.state.url !== "")) {
|
||||||
post(apis.submitMessage, { content: this.state.msg, image: this.state.url })
|
post(apis.submitMessage, { content: this.state.msg, image: this.state.url })
|
||||||
.then(({ data, status, networkStatus }) => {
|
.then(({ data, status, networkStatus }) => {
|
||||||
this.setState({ submitting: false });
|
|
||||||
if (networkStatus !== 200) return;
|
if (networkStatus !== 200) return;
|
||||||
if (!status) {
|
if (!status) {
|
||||||
|
this.setState({ submitting: false });
|
||||||
return alert('提交内容失败:' + data);
|
return alert('提交内容失败:' + data);
|
||||||
}
|
}
|
||||||
this.setState({ msg: "", url: "", file: null });
|
this.setState({ submitting: false, msg: "", url: "", file: null });
|
||||||
alert('内容提交成功啦');
|
alert('内容提交成功啦');
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
載入中…
x
新增問題並參考
Block a user