【发布时间】:2016-08-18 00:27:07
【问题描述】:
假设我有一个像path.join() 这样的同步函数。我想将它包装到 Promise 中,因为我希望在 catch() 块中处理异常。
如果我像下面这样包装它,我不会在Promise 的.catch() 块中得到异常。所以我必须使用if 来检查返回值是否是错误,然后调用resolve 或reject 函数。还有其他解决方案吗?
var joinPaths = function(path1,path2) {
return new promise(function (resolve, reject) {
resolve(path.join(path1, path2));
});
};
【问题讨论】:
-
为什么要将同步函数包装到 Promise 中?
-
当需要用硬编码值替换一些异步调用时,单元测试是一种常见的情况
-
将同步函数包装到 Promise 中的最好方法是不这样做。
-
@Srinesh:然后使用
Promise.resolve().then(()=> path.join(path1, path2)).… -
@RodrigoJuarez 如果我在
then()中使用path.join,那么我可以在 catch 块中管理所有异常
标签: javascript node.js promise