我似乎无法在批量写入中找到类似的代码正确处理错误,因此我只想问我是否正确行事。
我想要做的就是只有一个try / catch,当有其他promises时,我会检查instanceof Error
并将其抛入try / catch。这是正确的还是有更好/更清洁的方式来做到这一点?非常感谢。
try {
// other logic here
const bulkWriteResult = await new Promise((resolve, reject) => {
try {
Student.collection.bulkWrite(
bulkUpdateOps,
{ ordered: true, w: 1 },
(err, result) => {
if (err) reject(err);
resolve(result);
},
);
} catch (err) {
reject(err);
}
});
if (bulkWriteResult instanceof Error) {
const error = new Error('Unable to batch update students');
error.code = 500;
throw error;
}
} catch (err) {
// handle all thrown error
}