2016-04-11 3 views
0

Ich habe einige Versprechen, die mir Objekte zurückgeben.Spread Versprechen und erweitern in einem neuen Objekt

Jetzt möchte ich sie in ein neues Objekt zusammenführen/erweitern daher verwende ich Lodash's extend.

var whenEverythingIsDone = Promise.all([firstPromise, secondPromise, ...]) 
          .spread(_.extend); 

Jetzt habe ich das Problem, dass ich nicht ein neues Objekt nur verlängert firstPromise gemacht habe.

ich diese getestet,

var whenEverythingIsDone = Promise.all([{}, firstPromise, secondPromise, ...]) 
          .spread(_.extend); 

und es hat funktioniert, soweit ich das beurteilen kann.

Ist das eine gute Lösung?

Könnte es Fehler geben?

Antwort

1

Es wird funktionieren, Promise.all tut Promise.resolve alle Array-Elemente und ein leeres Objekt wird kein Problem sein.

ich obwohl es sauberer finden würde partial application explizit zu verwenden:

var whenEverythingIsDone = Promise.all([firstPromise, secondPromise, …]) 
          .spread(_.partial(_.extend, {})); 
0

Ich mag es! sehr sauber und präzise ... Ich sehe kein Problem, wenn keines der Versprechen noch etwas anderes beschließt, als ein Objekt