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

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

作者: 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