DEV Community

Discussion on: Pro tip: using Promise.then for function composition

Collapse
 
jreina profile image
Johnny Reina

The cool thing about Promises is that the then method, when used this way, is just like the map function. It has the same abstract type signature. This makes Promises behave like any other functor, which means that this method respects composition. Therefore,

somePromise
  .then(f)
  .then(g)
  .then(h);

is the same thing as

const w = pipe(f, g, h);
somePromise.then(w);
Collapse
 
jhlagado profile image
John Hardy

Yes, I was thinking that as well. When chaining a sequence of maps, it's better to only map once using a composition of functions.

Collapse
 
shalvah profile image
Shalvah

I'm curious as to why you think it's better to "map once". I personally prefer using "then" repeatedly, because it might take a while for people who aren't familiar with functional programming to grab the concept of piping.