刚开始使用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
并退出脚本。引发了其他一些错误,这些错误没有被
then
或onTimeout
捕获,并且脚本退出。因此,如果命名在
success
和fail
中传递的那些函数,则应该知道此命名仅在超时功能方面是正确的。