在ajax回调函数之外使用变量

在ajax回调函数之外使用变量,第1张

在ajax回调函数之外使用变量

您提供的代码是完全有效的,并且实际上

icon
可以 “保持”其价值。问题可能是
get()
异步运行的-仅
'data.xml'
从服务器完全加载后才调用匿名函数。因此,现实世界中的执行顺序如下所示:

  1. 调用
    get('data.xml', function(xml){...})
    (开始加载data.xml)
  2. 通话
    console.log(icon)
    icon
    目前仍为null)
  3. (data.xml中完成载入) 现在 匿名函数被调用时,其分配值给图标:
    icon = xml.documentElement.getElementsByTagName("icon")

如果你想要做一些事情的价值

icon
之后 的“data.xml中”已被提取,那么你需要做的是 内部 匿名回调函数。像这样:

var icon; $(function(){  $.get('data.xml', function(xml){       icon = xml.documentElement.getElementsByTagName("icon");       console.log(icon);   });});

祝好运!


注意:您仍然可以使用

icon
从代码, 外面 的匿名功能,但你需要等待来访问它,直到
匿名函数已经运行。最好的方法是将相关代码放入其自己的函数中,然后从回调函数中调用该函数:

var icon; $(function(){  $.get('data.xml', function(xml){       icon = xml.documentElement.getElementsByTagName("icon");       loadIcon();   });   function loadIcon() {       console.log(icon);       // ... do whatever you need to do with icon here   }});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5089149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-16

发表评论

登录后才能评论

评论列表(0条)

保存