I use promises and like them, but generators are a LOT nicer. I've been playing around with KoaJS and I'm amazed with it. I find that overall it makes code a lot easier to read, write, and understand.
On top of that, it give you sane stack-traces!
I'm not certain if this is correct, but from what I can gather, you can yield on a promise and if you resolve it successfully you get the value directly and if you resolve it as a failure, it will throw an error.
There are some very interesting things you can do with generators in regards to asynchronous flow control. Personally I'm in favor of the Promises, however. Unfortunately some current implementations are broken in terms of error handling. Chrome just swallows exceptions that happen in Promises, in a lot of cases.
(I don't like promises and would like to see it go away. Sadly too many specs have adopted it already)