waitForSelector(“...”,函数success()/函数失败()目的?

时间:2015-06-25 20:09:18

标签: javascript if-statement casperjs

刚开始使用casperJs并注意到了

的选项
waitForSelector("....", function success() {

},
function fail() {

});

我的问题是,对于成功的代码和错误,使用if / else语句有什么不同?一个人比另一个人有好处吗?我在网上搜索过,并且在这里找不到任何确定的东西。

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

答案 1 :(得分:0)

waitForSelector是一个异步函数,它没有立即返回的值。这就是它在回调函数中返回的原因。 waitForSelector可以在链的某个位置抛出异常,或者可能意外失败并抛出异常。在这种情况下,将调用错误回调函数fail(),这就是您可以优雅地处理错误的地方。 if / else是处理确定性值的同步行为。