Hi, everyone. I've been writing Protractor tests for a huge application for the past 4 months. During this time, I've struggled a lot with the fact that every browser interaction returns a promise.
Promises are a relevant, creative solution to async programming, but none of the tests I wrote so far really required async, and I have a feeling that, maybe, none will. Async feels like it's only there because of WebDriver (and Node), and I have to cope with the additional complexity for apparently no reason other than the fact that "Node should be async". I have a very good understanding of promises now (honestly, I do), but they do make things harder for me regardless of understanding, because in Protractor they're absolutely everywhere. Perhaps I just need more practical experience, and my theoretical knowledge isn't so important, but in any case... It's not easy. My teammates don't know a lot of JavaScript, so working with Protractor has been a nightmare to them. I'm aware there's no synchronous network module at the core of Node, but it's theoretically possible to implement one. In fact, I found this apparent fork of WebDriverIO that supports synchronous calls: https://github.com/jsdevel/webdriver-sync. Also, there's this module that provides basic synchronous TCP client functions: https://github.com/AnAppAMonth/syncnet. I'm afraid this topic can get heated very easily, but I really want to try to open a discussion as to whether Protractor should be async or sync and what people think, especially Julie. Is there a good reason to keep Protractor async? And is anyone using Protractor with IO.js / generators? Maybe they can say that it's okay, once those land in Node, things will be easier? -- You received this message because you are subscribed to the Google Groups "AngularJS" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/angular. For more options, visit https://groups.google.com/d/optout.
