我正在测试axios错误的结果,如下所示:
.catch((error) => {
if (!error.response || !error.response.data || !error.response.data[0] || !error.response.data[0].err_code) {
reject(999);
} else {
reject(error.response.data[0].err_code);
}
});
有时错误对象包含所有的error.response.data[0]段,有时不包含。有没有什么方法可以像我的例子一样测试error.response.data[0]段的存在性,但又不那么冗长?
3条答案
按热度按时间zphenhs41#
您可以使用“&&”运算符来简化测试:
这样,如果任何段
错误响应数据[0]错误代码
为falsy,则表达式将返回999。
gzjq41n42#
我已经找到了解决方案,很适合我。我使用所谓的“可选链接”(https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining),感谢Berk Korkcuoglu。以下是我的代码:
cuxqih213#
稍微紧凑一点的是: