【发布时间】:2020-09-21 13:18:56
【问题描述】:
我正在构建一个 API,它需要循环调用另一个 API(特别是 Quickbooks Online)。这些调用包含在一个 Promise 中,该 Promise 会根据 Quickbooks 返回的内容来解决或拒绝。一切正常,但是,我希望能够在捕获错误后继续循环。目前,一个错误被捕获并记录到数据库中,但循环停止并且不再进行调用。我在 catch 块中尝试了“返回”和“继续”,但无济于事。
代码示例:
// This is part of a larger loop. Needs to be async
await paymentInfo.forEach(async ln => {
var payRef = ln.payment_ref
var vendor = ln.vendor_id
var finalPayment = await service.createPayment(args)
.then(console.log("Payment created"))
.catch((err) => {
// Log error to DB
service.dbUpdate(err)
.then(console.log("Error Logged to DB"))
.catch(() => {})
// Continue??
})
// Database update here with payment ID
})
最终,在 catch 之后,我只想继续循环的下一次迭代。据我所知,没有一种简单的方法可以做到这一点。欢迎任何建议。
【问题讨论】:
标签: javascript foreach promise async-await