Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // With Lodash
- let resolveAll = P => {
- let map = ( pl, next ) => Promise.all( pl.map( p => Promise.resolve( p ).then( next ) ) ),
- props = o => {
- let pToR = [];
- _.map( _.keys( o ), k => pToR.push( Promise.resolve( o[ k ] ).then( v => _.set( o, k, v ) ) ) );
- return Promise.all( pToR ).return( o );
- },
- rNP = o => Promise.resolve( o ).then( o => {
- if( _.isArray( o ) ) return map( o, rNP );
- else if( _.isPlainObject( o ) ) {
- let oa = {};
- for( let ka in o ) oa[ ka ] = rNP( o[ ka ] );
- return props( oa );
- }
- return o;
- } );
- return ( rNP )( P );
- };
- // Native Code
- let resolveAll = P => {
- let map = ( pl, n ) => Promise.all( pl.map( p => Promise.resolve( p ).then( n ) ) ),
- props = o => {
- let arr = [];
- Object.keys( o ).map( k => arr.push( Promise.resolve( o[ k ] ).then( v => ( o[ k ] = v, o ) ) ) );
- return Promise.all( arr ).then( () => ( o ) );
- },
- rNP = o => Promise.resolve( o ).then( o => {
- if( Array.isArray( o ) ) return map( o, rNP );
- else if( typeof o === 'object' ) {
- let oa = {};
- for( let ka in o ) oa[ ka ] = rNP( o[ ka ] );
- return props( oa );
- }
- return o;
- } );
- return ( rNP )( P );
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement