javascript 发生错误时将值推入catch块[已关闭]

bsxbgnwa  于 2023-01-04  发布在  Java
关注(0)|答案(1)|浏览(102)

3小时前关门了。
Improve this question
当使用try catch块和for of循环时,希望捕获发生错误的值并将其推入数组。

for(const value of values){
    try{
        const result=await db.run(updateSql, value);
            console.log("try", value);
     results.push(value);
    }
catch(error){
    console.log("error", value);
        errors.push(value);
}   
finally{
    console.log("finally");
}
}
mcdcgff0

mcdcgff01#

Await应该在async函数中。也许this有帮助。

let values = [1,2,3]
let errors = [];

//mimicking some rejected async call
function rejectAfterOneSec() {
  return new Promise((resove, reject) => {
    setTimeout(() => {
      reject('rejected');
    }, 1000);
  });
}

//temporary function thats awaiting our Promise
async function tempFunc(){
    return await rejectAfterOneSec();
}

for(const value of values){
    try{
     results = tempFunc();   
     console.log("try", value);
     results.push(value);
    }
    catch(error){
        console.log("error", value);
        errors.push(value);
    }   
    finally{
        console.log("finally");
    }
}

相关问题