0

PhantomJS を使用して JavaScript を実行しています。phantom.exit()第1引数として終了コードを受け取る関数があります。

これがどのように機能するかです...

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.exitによってオーバーライドされる可能性がありpage.openます。

したがって、コールfoo()は終了コードを -1 に設定します。
その後、パラメーターなしで呼び出しphantom.exit、終了コードを 0 に戻します。

ファントム自体はおそらく、すべてが実行された後に終了コードを返すため、-1 の兆候なしで 0 を取得します。

于 2012-12-12T11:58:43.873 に答える