刚开始使用casperJs并注意到

waitForSelector("....", function success() {

},
function fail() {

});


我的问题是,使用成功的代码和错误使用if / else语句有什么区别?有一个比另一个有好处吗?我已经在网上搜索过,在这里也找不到任何确定的信息。

最佳答案

waitForSelector(String selector, Function then, Function onTimeout, Number timeout)


是一个异步步骤函数,这就是为什么选择器一找到就不返回,而是立即返回casper对象的原因,因为CasperJS支持流畅的API。您根本无法使用if-else检查等待是否成功。

调用waitForSelector()安排一个等待步骤。此计划的步骤可以通过以下三种方式之一结束:


找到选择器:如果then函数通过,则作为单独的步骤执行。否则,将执行下一个计划的步骤。
在等待时间(超时)中未找到选择器:如果传递了onTimeout函数,则该函数将作为捕获onTimeout错误的单独步骤执行。如果未传递,并且没有全局onTimeout处理程序,则会抛出CasperError并退出脚本。
引发了其他一些错误,这些错误没有被thenonTimeout捕获,并且脚本退出。


因此,如果命名在successfail中传递的那些函数,则应该知道此命名仅在超时功能方面是正确的。

07-28 04:55