Advertisement
Guest User

Untitled

a guest
Sep 28th, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.60 KB | None | 0 0
  1. // With Lodash
  2. let resolveAll = P => {
  3. let map = ( pl, next ) => Promise.all( pl.map( p => Promise.resolve( p ).then( next ) ) ),
  4. props = o => {
  5. let pToR = [];
  6. _.map( _.keys( o ), k => pToR.push( Promise.resolve( o[ k ] ).then( v => _.set( o, k, v ) ) ) );
  7. return Promise.all( pToR ).return( o );
  8. },
  9. rNP = o => Promise.resolve( o ).then( o => {
  10. if( _.isArray( o ) ) return map( o, rNP );
  11. else if( _.isPlainObject( o ) ) {
  12. let oa = {};
  13. for( let ka in o ) oa[ ka ] = rNP( o[ ka ] );
  14. return props( oa );
  15. }
  16. return o;
  17. } );
  18. return ( rNP )( P );
  19. };
  20.  
  21. // Native Code
  22. let resolveAll = P => {
  23. let map = ( pl, n ) => Promise.all( pl.map( p => Promise.resolve( p ).then( n ) ) ),
  24. props = o => {
  25. let arr = [];
  26. Object.keys( o ).map( k => arr.push( Promise.resolve( o[ k ] ).then( v => ( o[ k ] = v, o ) ) ) );
  27. return Promise.all( arr ).then( () => ( o ) );
  28. },
  29. rNP = o => Promise.resolve( o ).then( o => {
  30. if( Array.isArray( o ) ) return map( o, rNP );
  31. else if( typeof o === 'object' ) {
  32. let oa = {};
  33. for( let ka in o ) oa[ ka ] = rNP( o[ ka ] );
  34. return props( oa );
  35. }
  36. return o;
  37. } );
  38. return ( rNP )( P );
  39. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement