美文网首页
关于回调函数中的变量赋值问题

关于回调函数中的变量赋值问题

作者: JohnsonChe | 来源:发表于2017-02-09 11:05 被阅读358次
    var b = null;
    setTimeout(function() {
      b = 1;
    }, 1000);
    
    console.log(b); //null```
    
    这种写法纯属是习惯问题,但往往忽视了异步和同步的执行顺序。要知道在JS中同步函数的执行永远比异步要快,也就是说console.log(b)先于setTimeout的callback执行,最后输出的当然是null。
    
    这种同步和异步问题主要出现在请求后的callback中,可能如果真要赋值全局变量,并对赋值后的全局变量进行操作,建议都都写在请求后的callback中,可以封装成函数形式。
    

    相关文章

      网友评论

          本文标题:关于回调函数中的变量赋值问题

          本文链接:https://www.haomeiwen.com/subject/fmdiittx.html