我有以下内容:
if (someCondition) {
return promiseMakerA().then(function() {
return promiseMakerB(someLongListOfArguments);
});
}
else
return promiseMakerB(someLongListOfArguments);
如何消除代码重复(promiseMakerB
)?
答案 0 :(得分:3)
您可以执行以下操作,但是,这不一定是最易读的方式
return (someCondition ? promiseMakerA(): Promise.resolve()).then(function() {
return promiseMakerB(someLongListOfArguments);
});
答案 1 :(得分:1)
假设promiseB的每个条件中的参数相同,则首先将它存储在变量中......然后在适用的地方返回该变量
let promiseB = promiseMakerB(someLongListOfArguments);
if (someCondition) {
return promiseMakerA().then(function() {
return promiseB;
});
}
else
return promiseB;