我试图使用 console.log
跟踪来理解以下代码的流程:
function fetchTsValues() {
console.log("fetchTsValues");
axios.get(urlValues)
.then(result => valuesToChannel(result.data))
.catch(() => setError('Impossible to get TS values'));
}
useEffect(() => {
fetchTsValues();
}, []);
function valuesToChannel(TSDetailAPI) {
console.log(TSDetailAPI);
console.log("valuesToChannel");
const updatedChannels = {...channels};
console.log("updatedChannels - 1", updatedChannels);
updatedChannels[TSDetailAPI.name].series = buildSeries(TSDetailAPI.values);
console.log("updatedChannels - 2", updatedChannels);
setChannels(updatedChannels);
setIsLoading(false);
}
console.log("error", error);
痕迹如下:
fetchTsValues
valuesToChannel
updatedChannels - 1 {demo-temperature-1: {…}}
error Impossible to get TS values
我不明白的是为什么我开始运行 valuesToChannel
初始指令,然后被 fetchTsValues
的捕获停止 axios.get
。 get
正确运行,返回状态代码为 200。
我可以理解完成then
,然后如果未交付 promise 则移动到catch
。但这里的代码甚至没有结束 then
子句。 我做错了什么或不理解什么?
注意:此代码是更广泛的 React 上下文的一部分。但我认为我已经正确地理解了简化的上下文。
最佳答案
感谢Charlie ,我能够修复我的错误。
我了解到使用 Try...catch可以有效地检测意外代码区域中引发的错误!
关于javascript - 然后 axios.get 的代码未完成并捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60282962/