function foo() { let p = new Promise(function(resolve, reject) { setTimeout(function() { console.log('foo'); resolve('foo111'); }, 1000); }); return p; } function bar() { console.log('bar'); return 'bar111'; } function foobar(x) { console.log(x); } let out = foo() .then(function() { return bar(); }) .then(function(x) { foobar(x); });