2016-08-21 28 views
0

wir haben einige Code-Review und der Code vor war wie folgt:Versprechen alle Konvention nähert sich

run: () =>{ 

    var _this = this; 
    return Promise.all([ 
     //Get command 
     cp.getCommand(constants.HB), 
     //Find port 
     cp.findPort() 
     ]).spread((r1, r2) => { 
     ... 

Nach dem Code-Review meinen Kollegen vorschlagen, es zu folgenden Änderungen, die ich nicht einverstanden, da Sie hinzufügen müssen unnötiger Code (das Array & Push) und ich bin nicht sicher, dass dies besser lesbar ist, was denkst du?

run: function() => { 

    var _this = this; 

    var promiseArray = []; 
    //Get command 
    promiseArray.push(cp.getCommand(constants.HB)); 
    //Find port 
    promiseArray.push(cp.findPort()); 

    return Promise.all(promiseArray) 
     .spread((r1, r2) => { 
+2

Es ist völlig auf der Grundlage von Meinungen und nicht im Zusammenhang mit Versprechungen. Als Tipp können Sie '.join' anstelle der beiden Optionen verwenden und erhalten eine noch bessere Syntax. 'Promise.join (cp.getCommand (Konstanten.HB), cb.findPort(), (r1, r2) => {...' –

+1

Die zweite ist wirklich schrecklicher Code.Verwenden Sie Array-Literale, wenn der Inhalt statisch ist. Mit "push" gibt es nichts gewonnen. – Bergi

+0

Wenn man ES6 benutzt, kann man '.then (([r1, r2]) => ...)' anstelle von 'spread' verwenden, oder, wie Benjamin sagt, einfach gehen Sie auf Bluebirds "Promise.join" – Bergi

Antwort

0

Es gibt keinen besonderen Grund, die Versprechen in einen explizit deklarierten Array zu setzen, bevor sie zu Promise.all() so vorbei, es ist ziemlich schwer zu verteidigen, dass die zweite Option „besser“ als die erste Option ist.

In der Tat könnten Sie leicht einen Fall machen, dass die zweite Option nur eine unnötige benannte Variable erstellt, die das Zwischenarray enthält und unnötige Funktionsaufrufe .push() ausführt.

Am Ende gibt es hier kein absolutes richtig oder falsch. Dies ist nur eine Frage der Meinung zum Codierungsstil. Code-Reviews sind oft Teil der verteidigbaren Logik und Meinung der Teilprüfer. Es scheint, dass Sie gerade in eine Meinung geraten sind, wo der Rezensent eine andere Meinung hat als Sie.

Wenn Sie ein Review-Problem wie dieses zurückdrängen wollen, dann sollten Sie sie bitten zu verteidigen, warum sie ihre Methode notwendigerweise besser als Ihre erste Annäherung ist.

Verwandte Themen