“A Monad is just a monoid in category of endofunctors, what is the problem?”: http://stackoverflow.com/questions/3870088/a-monad-is-just-a-monoid-in-the-category-of-endofunctors-whats-the-proble%E2%85%BF
I understand the “observer” here is more of a technical implementation than a concept. Conceptually, the function you pass to the Promise is also an observer. But here they mean it in the more specific
RxJX contexts, where the observer object is required to conform to their api. But plain functions would be simpler to use, in my view.