I am using the selenium-webdriverjs. I want to wait for a certain element to be displayed for which I have created an explicit wait as follows and it works just fine,
<
To avoid much of the confusion involved in the asynchronous flavors of webdriver and js, you could give webdriver-sync a try: https://npmjs.org/package/webdriver-sync
It's been my experience that the async versions of the webdriver API become difficult to read after too many nested callbacks.
This of course assumes that you don't have requirements to remain asynchronous.
Disclaimer: I am the creator of this piece of software (webdriver-sync)