2016-03-29 33 views
0

Bir değişkene bağlı olarak iki durumdan birinin meydana gelebileceği bir durum var. Bu iki durum da bir söz verir ve daha sonra uygulanan mantığın aynısına sahip olur.Şartlı vaat zincirleme?

Böyle bir şey olmasını istiyorum:

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

bu geçerli mantığı olmadığını biliyoruz ama şartlı olanların hem .sonra nerede nasıl Benzer bir şey başarmak olabilir?

cevap

5

soru formatında en ima gibi, tek satırda yapabilirsiniz? Gözlerimde daha okunaklı bir şekilde daha fazla okunabilmektedir.

+0

Her biri için, ilk snippet'inizin okunabilirliğinin hayranıyım (bu da gereksiz bir değişken oluşturmuyor). – Adam

+0

@Adam Indeed - bu yüzden ayrı bir bölüm olarak ekledim, aynı zamanda neredeyse fikir birliği alanına girdiğine dair bir yorum ekledi :) Gereksiz değişkenler ve okunabilirlik hakkında çok fazla endişe etmem - eğer gereksizlerse, iyimser onlara iyi bak. –

+0

Bu mükemmel! – Crhistian

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

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

Bu yapılmalı mı?

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

Ama gerçekten istiyorsun: