有条件地链接承诺 - 如何避免代码重复?

Conditionally chaining promises - how to avoid code duplication?

我有以下内容:

if (someCondition) {
     return promiseMakerA().then(function() {
         return promiseMakerB(someLongListOfArguments);
     });
}
else
    return promiseMakerB(someLongListOfArguments);

如何消除代码重复 (promiseMakerB)?

假设 promiseB 的每个条件中的参数都相同,首先将其存储在一个变量中...然后 return 该变量(如果适用)

let promiseB = promiseMakerB(someLongListOfArguments);

if (someCondition) {
     return promiseMakerA().then(function() {
         return promiseB;
     });
}
else
    return promiseB;

您可以执行以下操作,但这不一定是最易读的方法

return (someCondition ? promiseMakerA(): Promise.resolve()).then(function() { 
    return promiseMakerB(someLongListOfArguments); 
});