【发布时间】:2018-10-03 10:58:56
【问题描述】:
考虑这两个函数:
function a(){
//...
if(something) {
return Promise.resolve();
} else {
return Promise.reject();
}
}
function b(){
//...
return new Promise((resolve, reject) => {
if(something) {
resolve();
} else {
reject();
}
});
}
我经常遇到第二种方法,但第一种对我来说看起来更干净一些。是否存在任何特定的、罕见的用例,即代码在每种方法中的工作方式都不同,或者仅仅是语义上的?
【问题讨论】:
-
如果
new Promise(里面没有可以抛出的逻辑,而里面只有if,那么两个版本是等价的。 -
完全一样
-
@dfsq,我不确定,但第一个函数创建了两个对象,但后来一个只创建了一个。所以第二个功能是节省内存。请清除它。谢谢!