【发布时间】:2020-01-16 04:57:54
【问题描述】:
我在我的代码中使用了一个函数定义,它是一个异步函数,它通过 try/catch 从 Promise 返回值。像这样的东西:-
async someFunction(parameters) {
return new Promise(async(resolve, reject) => {
try {
// do something like an api call with await and resolve the response
resolve(parameters);
} catch (error) {
reject(error);
}
});
}
someFunction("HEllo world");
我想问,这是不是有点矫枉过正?我在写冗余代码吗?这是反模式吗?
【问题讨论】:
-
取决于
do something里面的内容 -
@CertainPerformance 更新了代码。
-
是的,至少有两种反模式。你不需要声明一个函数
async,你只是从中返回一个手动创建的承诺。而且,您也不需要将 Promise executor 回调声明为async。而且,如果你在 executor 中使用await,那么你不需要用手动创建的 Promise 来包装它。 -
@jfriend00 如果我在其他地方用 await 调用这个函数怎么办?
-
在下面查看我的答案。
标签: javascript node.js typescript promise