有条件地链接承诺 - 如何避免代码重复?
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);
});
我有以下内容:
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);
});