In the beginning, to me, it was fluent API's; especially in Java. Writing REST API's was a pain with all those chains. And each Object had its variety or allowed only certain chains to appear in particular order. Defining a Response-header, the content type, the body and HTTP state was always a pain when I was forced to use fluent API's.
someone("me").can(new Task(Magic.class)).do("magic").stuff(new CardTrick("Know the number"));
"How can one know all the chains?"
Or
"It's impossible to write such by me!".
Then I got curious about Node.js and thankfully, some crazy genius people created the concept of 'then' - the later so-called 'Promise A+' spec. I read the documentation, and it did the trick to me.