简体   繁体   English

有条件的诺言链?

[英]Conditional promise chaining?

I have a situation where depending upon a variable one of two situations can occur. 我有一种情况,根据变量的不同,可能会发生两种情况之一。 Both of these situations return a promise and have the exact same logic applied afterwards. 这两种情况都返回一个承诺,并在之后应用完全相同的逻辑。

I want something like this to happen: 我希望这样的事情发生:

userisBuyer ? Order.Create : Order.Create.As.Buyer
    .then //do same stuff for both

I realize this isn't valid logic but how could I accomplish something similar where I .then on both of those conditionally? 我意识到这不是有效的逻辑,但是在有条件的情况下我又该如何做到类似的事情?

You can do this in one line, as implied at by your question format: 您可以按照问题格式所暗示的,在一行中完成此操作:

(userisBuyer ? Order.Create() : Order.Create.As.Buyer()).then(function() {
     //do same stuff for both
});

But do you really want to? 但是你真的想要吗?

var createMethod = userisBuyer ? Order.Create : Order.Create.As.Buyer;
createMethod().then(function() {

});

is much more readable in my eyes. 在我眼中更具可读性。

let action = userisBuyer ? Order.Create : Order.Create.As.Buyer;

action()
.then(res => {your code})

This should do ? 这应该怎么办?

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

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