function doLotsOfStuff() { // Call two asynchronous functions which return promises. return Promise.join( readFromDB(), requestFromService() ) .spread((dbResponse, serviceResponse) => { // Do something with both the dbResponse and the serverResponse. // Return only dbResponse as example. return dbResponse; }) .catch(err => { // Handle errors. }); } doLotsOfStuff() .then((dbResponse) => doSomethingElse(dbResponse)) .then((somethingElseResponse) => anythingElse());