Monads are mainly hard to grasp because Monad is a terrible name and all explanations overly convoluted
Do you mean promises in general, or the concrete implementation in js? I've got it in my head that promises the pattern are monadic, but js stuffs it (e.g. by up by making .then() automatically flatten if the callback also returns a promise)