gpt4 book ai didi

javascript - 使用嵌套的 open() 函数时何时退出?

转载 作者:行者123 更新时间:2023-11-29 21:55:10 26 4
gpt4 key购买 nike

我在使用PhantomJS的过程中遇到了一些问题。我指的是this article .我尝试嵌套 open() 函数,但没有得到我想要的结果,即打开所有 4 个 url 并打印所有 4 个 console.log

代码:

var page = require('webpage').create();             //新建一个页面

url1 = "-----";
url2 = "-----";
url3 = "-----";
url4 = "http://-----/";

page.open(url1, function(status) { //导航到第一个URL
console.log('111111111111');
if (status == "fail") phantom.exit(); //如果发生错误,退出程序
page.open(url2, function(status) { //否则在页面加载完成的回调函数中继续导航到第二个URL,依次类推
console.log('22222222222222');
if (status == "fail") phantom.exit();
page.open(url3, function(status) {
console.log('3333333333333333');
if (status == "fail") phantom.exit();
page.open(url4, function(status) {
console.log('444444444444444');
if (status == "fail") phantom.exit();
});
});
});
console.log('close');
phantom.exit();
});

结果:

$ phantomjs test.js 
111111111111
close

最佳答案

当你完成执行 PhantomJS 时你必须退出并且在你打开 url4 之后你似乎已经完成了:

page.open(url1, function(status) {
console.log('111111111111');
if (status == "fail") phantom.exit();
page.open(url2, function(status) {
console.log('22222222222222');
if (status == "fail") phantom.exit();
page.open(url3, function(status) {
console.log('3333333333333333');
if (status == "fail") phantom.exit();
page.open(url4, function(status) {
console.log('444444444444444');
if (status == "fail") phantom.exit();
console.log('close');
phantom.exit();
});
});
});
});

正如 Nicolas 在他的博客中所说,PhantomJS 是异步的。你只是退出得太早了。

关于javascript - 使用嵌套的 open() 函数时何时退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26829216/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com