Promises and then function return values
The return type of Promise function will dictate how future chained then
functions behave. If you return a Promise
then the next chained then function will execute when the Promise
that you returned is resolved.
Promise.resolve('foo').
then(() => {return Promise.resolve('bar')}).
then((v) => console.log(v))
// prints bar
If you return something different from the then function, then the argument of the next chained then function will be the previous returned value.
Promise.resolve('foo').
then(() => {return 'baz'}).
then((v) => console.log(v))
// prints baz
Check out the MDN docs for Promise.prototype.then
H/T Brian Dunn
H/T Josh Branchaud
Tweet