Bob*_*ose 1 javascript 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
Run Code Online (Sandbox Code Playgroud)
我知道我可以将函数执行包装在 try/catch 块中,但我更喜欢有一个错误捕获段。
.then() 捕获同步错误:
const functionsArray = [functionA, functionB]
.map(f => Promise.resolve().then(f))
Run Code Online (Sandbox Code Playgroud)
有一个建议将其称为Promise.try。
异步函数也可以解决这个问题:
const functionsArray = [functionA, functionB]
.map(async f => f())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
215 次 |
| 最近记录: |