我有这样一个错误。如何纠正和调试。我希望代码在出现问题时停止。
我的准则
export function postRequestOtpCode(phone: string, token: string): CancellableAxiosPromise {
axios.defaults.baseURL = ARGO_ENV.API_APPLICATION_URL;
return API.post('/otp/request-otp-code', { phone: `7${getCleanPhoneNumber(phone)}`, token }, {});
}
async function requestOtpCode(phone: string, captchaToken?) {
try {
clearTimer();
setOtpLoading(true);
const res = await postRequestOtpCode(phone, captchaToken);
setOtpState(OTPstate.SHOW);
startTimer();
return res;
} catch (err) {
throw handleError(err);
} finally {
setOtpLoading(false);
}
}
2条答案
按热度按时间33qvvth11#
requestOtpCode
返回一个promise,因为它是一个异步函数。您通过“尝试cathing”axios调用做得很好,但由于添加了
throw
,因此您有一个uncaught Error
。删除catch中的throw,因为它是多余的,catch在这里处理axios调用的可能错误,并使用它做一些事情,如日志记录或呈现用户可读的错误报告。
如果你想停止代码,你可以返回。
下面是一个article,可以更详细地解释js中的try...catch
k97glaaz2#
我的解决方案: