繁体   English   中英

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

[英]Conditionally chaining promises - how to avoid code duplication?

我有以下内容:

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

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

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

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

假设在每个条件下参数对于promiseB都是相同的,首先将其存储在变量中...然后在适用的情况下返回该变量

let promiseB = promiseMakerB(someLongListOfArguments);

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM