【发布时间】:2022-01-08 13:30:14
【问题描述】:
可以像下面这样承诺退货吗? catch 块是返回 promise 还是正常的 Error?
async function beforeProcessing(ctx) {
try {
let res = await validateList(ctx)
return new Promise((resolve, reject) => {
if (res && res.length > 0) {
const customErr = new Error(`missing for ${res} types`);
customErr.statusCode = 422;
reject(customErr);
}
else {
resolve();
}
})
} catch (error) {
return new Error(error);
}
}
【问题讨论】:
-
该函数将始终返回一个被标记为
async的承诺。无论函数返回什么,等待该承诺总是会产生一个值。函数里面的new Promise是没有意义的。
标签: javascript node.js async-await promise es6-promise