3

したがって、wikiの例はphantom.exit()ここに2か所あります。phantom.exit()スクリプトの最後に置くことができないのはなぜですか?それは私にはあまり意味がありません。

var page = require('webpage').create(),
t, address;

if (phantom.args.length === 0) {
    console.log('Usage: loadspeed.js <some URL>');
    phantom.exit(); //Why does this only work if "phantom.exit()" is here,
} else {
    t = Date.now();
    address = phantom.args[0];
    page.open(address, function (status) {
        if (status !== 'success') {
            console.log('FAIL to load the address');
        } else {
            t = Date.now() - t;
            console.log('Loading time ' + t + ' msec');
        }
        phantom.exit(); //and here.
    });
}
// but not just a single one here?
4

1 に答える 1

6

このpage.openメソッドは非同期であるため、メソッドに渡すコールバック関数は、将来のある時点で実行されます(によって参照されるリソースのaddressロードが終了したとき)。

そのスクリプトの最後にを呼び出すとphantom.exit()、コールバックが実行される前にPhantomJSが終了します。

于 2012-06-30T21:07:54.783 に答える