gpt4 book ai didi

javascript - 为什么我得到第一个数组项未定义?

转载 作者:行者123 更新时间:2023-12-03 03:45:26 25 4
gpt4 key购买 nike

我设置了一个全局变量

var URL = [];

并获取数据:

casper.then(function () {
// I get 19 links from this code
URL = this.evaluate(getURL);
// I can see i get the first link
console.log(URL[0] + '***************');
});

但在此函数之后我的 URL[0] 显示未定义。

// But this URL[0] shows the error that 
casper.thenOpen("'" + URL[0] + "'", function () {
this.echo(this.getTitle());
});

错误如下:

[debug] [phantom] opening url: 'undefined', HTTP GET
[debug] [phantom] Navigation requested: url=file:///Users/motogod19/PhantomPractice/parse_movie/'undefined', type=Other, willNavigate=true, isMainFrame=true
[warning] [phantom] Loading resource failed with status=fail: file:///Users/motogod19/PhantomPractice/parse_movie/'undefined'

为什么?我想不通。有任何想法吗 ?提前致谢。

最佳答案

您调用异步方法。因此,您需要确保在调用下一个需要此变量值的方法之前先获取 URL 的值。试试这个:

casper.then(function () {
// I get 19 links from this code
URL = this.evaluate(getURL);
// I can see i get the first link
console.log(URL[0] + '***************');

if (!URL[0]) {
// should handle the condition where url list is empty
return;
}

casper.thenOpen("'" + URL[0] + "'", function () {
this.echo(this.getTitle());
});
});

关于javascript - 为什么我得到第一个数组项未定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45413132/

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