考虑这两个函数:
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