【发布时间】:2021-10-02 02:09:57
【问题描述】:
我怀疑我编写了一个程序,如果我的循环中发生任何错误,我很困惑如何处理,以及编写处理错误处理的最佳实践
我应该在我的for of 循环中使用then catch 或try catch 作为输出
for (value of Data){
test = await getValue(value)
.then((obj)=>{
// some code})
.catch((err)=>{
console.log(err);});
}
for (value of Data){
try{
test= await getValue(value);
}
catch (e){
console.log(e);
}
Ps:欢迎投反对票,但需要适当的解释,这是编写的最佳实践
【问题讨论】:
-
在一个函数中混合
async/await和.then.catch(几乎)总是错误的代码 - 选择一个并坚持下去 -
这是个人喜好。通常,当不使用
await时,您会使用try/catch和await和.catch(),但也有例外。此外,在使用await时,您通常不会使用.then()。await的全部意义在于避免.then()及其导致的嵌套代码。 -
所以我应该使用 try catch 吗? @布拉沃
-
查看 jfriend00 之前的评论 - 这不取决于我,也不取决于他,这完全取决于您 - 在两段代码中,第二段可以说是“更好”,因为它没有混合async/await 与 .then/.catch - 所以在这方面 - 下定决心
-
在内部,
for循环,await与.then()给出完全不同的结果。一种提供异步操作的并行运行,另一种提供异步操作的顺序运行。因此,您使用可以为您提供所需行为的那个。然后,选择匹配的错误处理方法(try/catch与await和.catch()与.then())。
标签: javascript node.js for-loop try-catch