javascript - 然后 axios.get 的代码未完成并捕获错误

标签 javascript reactjs promise axios

我试图使用 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.getget 正确运行,返回状态代码为 200。

我可以理解完成then,然后如果未交付 promise 则移动到catch。但这里的代码甚至没有结束 then 子句。 我做错了什么或不理解什么?

注意:此代码是更广泛的 React 上下文的一部分。但我认为我已经正确地理解了简化的上下文。

最佳答案

感谢Charlie ,我能够修复我的错误。

我了解到使用 Try...catch可以有效地检测意外代码区域中引发的错误!

关于javascript - 然后 axios.get 的代码未完成并捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60282962/

相关文章:

javascript - 使用 ref 和 select 标签对下拉菜单使用react

javascript - 从 JSON 数组中获取变量

javascript - Python和Selenium To “execute_script” 解决 “ElementNotVisibleException”

javascript - 如何: dynamically switch css page

javascript - 检查用户计算机上是否安装了 .net 4 客户端配置文件

javascript - 从数组中删除特定元素

javascript - 使用 React Router 4 渲染嵌套组件时发生冲突

vue.js - 在 Vue 3 中将数据对象设置为来自 Promise 的值

javascript - 如何在 executor 函数中不添加事件处理程序的情况下将 Promises 与“click”事件一起使用?

concurrency - 如何为 map 函数使用 bluebird 并发选项