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

时间:2015-07-29 17:02:28

标签: javascript casperjs

我正在尝试修改' 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);

如何在回调函数中访问此全局变量,以便我可以修改它?

1 个答案:

答案 0 :(得分:2)

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

因为casper.on是异步的,所以你的casper.echo在你的casper.on完成之前就已经运行了。

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