gpt4 book ai didi

javascript - 如何同时处理 promise 和 non-promise 错误捕获

转载 作者:行者123 更新时间:2023-11-30 07:48:45 26 4
gpt4 key购买 nike

我正在执行一组函数,每个函数都可能返回一个 promise 并可能返回一个值。在处理返回值时,我希望能够捕获由所选函数创建的所有错误,无论它是 promise 还是值。这是我希望完成的示例:

const functionA = (v) => {
throw "Value error"
}
const functionB = (v) => new Promise(function(resolve, reject) {
throw 'Promise error';
})

const functionsArray = [functionA,functionB]
.map(f=>Promise.resolve(f())) // run function and cast return as promise
.map(f=>f.catch(console.log)) //add error catching

我知道我可以将函数执行包装在一个 try/catch block 中,但我更希望有一个错误捕获段。

最佳答案

.then() 捕获同步错误:

const functionsArray = [functionA, functionB]
.map(f => Promise.resolve().then(f))

有人建议将其称为 Promise.try .

异步函数也可以解决这个问题:

const functionsArray = [functionA, functionB]
.map(async f => f())

关于javascript - 如何同时处理 promise 和 non-promise 错误捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59398763/

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