0

我正在使用 PhantomJS 来运行 JavaScript。有一个函数phantom.exit()接受退出代码作为第一个参数。

这是它的工作原理...

var page = require("webpage").create(),
    $ = require("jquery")

page.open("http://127.0.0.1:8081/", function (status) {
    var title = page.evaluate(function() {
        return $("title").text()
    })
    phantom.exit(-1)
})

返回的退出代码是预期的 -1 或 255。

我的问题是当我的函数被调用时我需要退出脚本。我的功能包含phantom.exit(-1).

var page = require("webpage").create(),
    $ = require("jquery")

function foo() {
    phantom.exit(-1)
}

page.open("http://127.0.0.1:8081/", function (status) {
    var title = page.evaluate(function() {
        return $("title").text()
    })
    foo()
    phantom.exit()
})

问题是未调用函数中phantom.exit(-1)的那个foo()并且退出代码为0。

有一种解决方法可以检查我的函数中的返回值并phantom.exit()手动调用,但这不是我想要的......非常感谢任何帮助!

4

1 回答 1

3

有一种可能性是,您foo对输出的函数调用phantom.exitpage.open回调函数覆盖。

因此,调用foo()set exit code 为 -1。
然后,phantom.exit不带参数调用,将退出代码设置回0。

因为幻象本身可能会在所有内容执行完毕后返回退出代码,所以你得到了 0,没有 -1 的迹象。

于 2012-12-12T11:58:43.873 回答