私は約束を返すasyncを実行しているループ内のリストを処理しています。例外で処理を終了したくないので、それらを集約してfinally finallyブロックのresolveコールバックに渡します。 これがアンチパターンであるかどうかを知りたいのですが、もしそうなら、正しく行う方法についての指針を提供してください。おかげさまで それは世界的に合法的に見えるようエラーを集約し、解決策を約束するためのアンチパターン?
例は
async doSomething(list) {
let errorCount = 0
let errors = []
return new Promise(async (resolve, reject) => {
try {
list.forEach(async (item) => {
try {
actionThatThrows(item)
} catch (e) {
errorCount++
errors[errorCount] = e
}
})
} catch (e) {
errorCount++
errors[errorCount] = e
} finally {
if (errorCount > 0) {
resolve(errors)
} else {
resolve()
}
}
})
}
これは「外側」はfinallyブロックです特に何、100%明確ではありません。あなたはあなたの質問に例を挙げてください。 –
明確ではありません。明確に説明する。いくつかのサンプルコードを提供してください –
@DenysSéguret、Guarav、質問を更新して例を含めて – Krazibit312