我正在尝试修改' resource.received'中的cookie全局变量。回调函数。不幸的是,它不像普通的javascript那样工作。当我在回调中修改cookie时,它正在处理不同的cookie变量。当我返回到全局范围时,cookie仍然是一个空字符串。
var cookies = "";
casper.on('resource.received', function(resource) {
for(var i=0;i<resource.headers.length;i++){
var header = resource.headers[i];
if(header['name'] == 'Set-Cookie'){
if(header['value'].length > 0){
cookies += " " + header['value'];
}
}
}
})
casper.echo(cookies);
如何在回调函数中访问此全局变量,以便我可以修改它?
答案 0 :(得分:2)
您实际上正在修改正确的变量。
因为casper.on是异步的,所以你的casper.echo在你的casper.on完成之前就已经运行了。
如果您在.on中进行for循环后立即尝试记录或回显,您将看到您要查找的内容。