为什么 WebDriverJS 是异步的?

Why is WebDriverJS asynchronous?

大多数 Selenium 绑定都是同步的(Java、.Net、Python),但 JS 绑定是异步的。为什么?有什么好处?

我看到了一个好处 - 大多数代码(不是 promises 内部的代码)都可以快速检查语法错误。但与此同时 - 调试该代码非常复杂。我在围栏上。

我得到的答案是 NodeJS 本质上是异步的——它有一个工作线程和多个 IO 线程。如果发送 HTTP 请求(这是一个 IO),主线程在到达 IO 本身时停止,然后将 IO 工作交给其他线程。然后当响应返回时,另一个 IO 线程调用主线程。

由于这是 NodeJS 的自然工作方式,因此以这种方式实现 webdriver-js 是最简单的。