3

因此,wiki 中的示例phantom.exit()在这里有两个地方。为什么我不能放在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完成加载时)。

如果您在该脚本的末尾调用 to phantom.exit(),PhantomJS 将在回调有机会执行之前退出。

于 2012-06-30T21:07:54.783 回答