gpt4 book ai didi

javascript - 使用 Async/Await 捕获错误

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:08:01 25 4
gpt4 key购买 nike

我有一部分代码对不同的端点进行了多次 API 调用,我想知道这些调用是否有任何失败,以便我可以显示相应的错误消息。现在,如果 one() 发生错误,它将阻止所有其他调用发生,但这不是我想要的;如果发生错误,我希望它填充 errors 对象并让程序继续运行。

async function gatherData() {
let errors = { one: null, two: null, three: null };

const responseOne = await one(errors);
const responseTwo = await two(errors);
const responseThree = await three(errors);

if (!_.isNil(errors.one) || !_.isNil(errors.two) || !_.isNil(errors.three)) {
// an error exists, do something with it
} else {
// data is good, do things with responses
}
}

gatherData();

async function one(errors) {
await axios
.get("https://jsonplaceholder.typicode.com/comment")
.then(res => {
return res;
})
.catch(err => {
errors.one = err;
return err;
});
}

async function two(errors) {
await axios
.get("https://jsonplaceholder.typicode.com/comments")
.then(res => {
return res;
})
.catch(err => {
errors.two = err;
return err;
});
}

async function three(errors) {
await axios
.get("https://jsonplaceholder.typicode.com/comments")
.then(res => {
return res;
})
.catch(err => {
errors.three = err;
return err;
});
}

最佳答案

如果将 errors 传递给 async 函数,那么将 errors 对象作为参数传递

const responseOne = await one(errors);
const responseTwo = await two(errors);
const responseThree = await three(errors);

关于javascript - 使用 Async/Await 捕获错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58099856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com