在回调函数中访问全局变量

access global variable in callback function

我正在尝试修改 'resource.received' 回调函数中的 cookies 全局变量。不幸的是,它不像常规 javascript 那样工作。当我在回调中修改 cookie 时,它​​正在处理不同的 cookie 变量。当我 return 回到全局范围时,cookies 仍然是一个空字符串。

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);

如何在回调函数中访问这个全局变量以便修改它?

您实际上修改了正确的变量。

因为 casper.on 是异步的,你的 casper.echo 在你的 casper.on.

完成之前是 运行

如果您尝试在 .on 中的 for 循环后立即记录或回显,您将看到您要查找的内容。