function asyncfunc( callback ) { var string = 'abcdefg'; return new Promise( function( resolve ) { setTimeout( function() { resolve( string ); callback && callback( string ); }, 2000 ); } );}asyncfunc( function( str ) { console.log( str ); // output abcdefg} );asyncfunc().then( function( str ) { console.log( str ); // output abcdefg} );