刚开始使用casperJs并注意到了
的选项waitForSelector("....", function success() {
},
function fail() {
});
我的问题是,对于成功的代码和错误,使用if / else语句有什么不同?一个人比另一个人有好处吗?我在网上搜索过,并且在这里找不到任何确定的东西。
答案 0 :(得分:1)
waitForSelector(String selector, Function then, Function onTimeout, Number timeout)
是一个异步步骤函数,这就是为什么它一旦找到选择器就不会返回,但它会立即返回casper
对象,因为CasperJS支持一个流畅的API。您根本无法使用if-else
来检查等待的成功或失败。
对waitForSelector()
的调用安排了等待步骤。此计划步骤可以通过以下三种方式之一结束:
then
函数作为单独的步骤执行,如果它已通过。否则,执行下一个计划步骤。onTimeout
函数,则此函数作为捕获onTimeout错误的单独步骤执行。如果它没有通过并且没有全局onTimeout处理程序,则抛出一个退出脚本的CasperError
。then
或onTimeout
捕获并且脚本退出。因此,如果您为success
和fail
中传递的那些函数命名,那么您应该知道此命名仅在超时功能方面是正确的。
答案 1 :(得分:0)
waitForSelector
是一个异步函数,它没有立即返回的值。这就是它在回调函数中返回的原因。 waitForSelector
可以在链的某个位置抛出异常,或者可能意外失败并抛出异常。在这种情况下,将调用错误回调函数fail()
,这就是您可以优雅地处理错误的地方。 if / else是处理确定性值的同步行为。